6best practises voor het koppelen van applicaties

6
BEST PRACTISES
VOOR HET KOPPELEN
VAN APPLICATIES
De waarde van een Architectuur voor business en IT
Joost bentvelsen
6 BEST PRACTISES
VOOR HET KOPPELEN
VAN APPLICATIES
De waarde van een architectuur voor business en IT
Het koppelen van applicaties wordt doorgaans gezien als een technisch vraagstuk. Al snel wordt er
bij integratie gesproken over technieken. Integratie gaat in essentie niet over technologie. Het gaat
erom een fundament neer te leggen dat naar de toekomst toe een wezenlijke bijdrage levert aan de
bedrijfsdoelstellingen. Techniek is een middel, geen doel.
In dit artikel presenteert Joost Bentvelzen - Solution Architect Integratie en Mobility bij Breinwave zes bewezen architecturen die als basis kunnen dienen voor uw specifieke scenario.
Het #koppelen van applicaties wordt doorgaans
gezien als een technisch vraagstuk. Al snel wordt
er bij integratie gesproken over technieken als BizTalk, webservices, ESB’s en wat al niet meer.
Maar #integratie gaat wat mij betreft in essentie
niet over technologie. Het gaat erom een fundament neer te leggen dat naar de toekomst toe een
wezenlijke bijdrage levert aan de bedrijfsdoelstellingen. Techniek is een middel, geen doel. En daarom is Integratie Architectuur in de praktijk complex: juist door het verbinden van business en IT.
HET GEVAAR VAN KOPPELEN
Het koppelen van systemen is tegenwoordig niet
meer echt moeilijk. Elke applicatie heeft voorbereidingen getroffen om te koppelen met de buitenwereld en er zijn tal van ‘standaarden’ ontwikkeld
die als basis gebruikt kunnen worden. Als je een
techneut vraagt om twee willekeurige systemen
te koppelen, dan is de kans groot dat de techniek
geen bottleneck is. En ook veel verkopers van (deel)
oplossingen wagen zich aan de uitspraak dat hun
applicatie kan worden gekoppeld aan ieder ander
systeem.
Maar wie hieraan toegeeft en kiest voor een pragmatische aanpak, kan al vrij snel geconfronteerd
worden met de nadelige gevolgen ervan. Pragmatisme blijkt dan opportunisme. Een dergelijke koppeling betreft namelijk als snel maatwerk. En ook
als er tools worden gebruikt waarmee kan worden
geconfigureerd in plaats van geprogrammeerd,
is de kennis in de praktijk vaak maar bij enkelen
bekend en slecht gedocumenteerd. Dat is geen
probleem zolang de koppeling doet wat ervan verwacht wordt. Het probleem ontstaat als de wensen
veranderen.
Want zodra er nieuwe requirements ontstaan,
heeft dit impact op de koppeling. Een veld erbij
bijvoorbeeld, kan al snel een dure aangelegenheid
worden omdat dit in twee systemen en de koppeling gerealiseerd moet worden. Zowel in een ontwikkelomgeving, een testomgeving, een acceptatie
omgeving en een productieomgeving.
En dan hebben we het nog niet eens over het
upgraden van systemen. Steeds vaker kom ik
bedrijven tegen die op softwareversies van jaren
geleden werken omdat ze vanwege alle koppelingen #niet meer kunnen of durven upgraden. En
daardoor halen ze niet de potentie uit ICT die de
concurrentie wel heeft. En dat is duur. De kosten
van een koppeling zitten hem dus niet alleen in de
realisatie ervan, maar vooral ook in het beheren
en uitbreiden ervan. En in de beperkingen die er
daarna ontstaan.
De oplossing hiervoor is niet moeilijk. Het is met
name een attitude. Doe eerst een stap terug en doe
er dan twee vooruit, geldt hier als belangrijkste
uitgangspunt. Wie meteen begint over de tools en
pragmatisch aan de slag denkt te gaan, is uiteindelijk duurder uit. Een goed #fundament neerleggen
is de basis en kan met weinig inspanning.
WAAROM EEN ARCHITECTUUR?
Werken vanuit een #architectuur biedt zowel de
business als de IT houvast. Waar de business het
vaak vooral belangrijk vindt om flexibel te zijn,
focust de IT zich ook op zaken als betrouwbaarheid
en veiligheid. Daarnaast zijn beiden erbij gebaat
de totale kosten, dus inclusief het beheer, zo laag
mogelijk te houden.
Een architectuur helpt hierbij. Er ontstaat inzicht
in het #applicatielandschap. Er is duidelijk welke
applicatie welk doel dient en waar elke applicatie in
het proces wordt toegepast. De koppelingen tussen
applicaties worden expliciet gemaakt. En als er in
de toekomst nieuwe applicaties worden overwogen,
dan kunnen deze worden getoetst tegen de architectuur.
HOE KOM JE ERACHTER WAT DE BUSINESS WIL?
Een architectuur is geen one-size-fits-all. Als iemand
mij advies vraagt over bijvoorbeeld koppelingen,
dan begin ik met het stellen van vragen. Ik wil
weten wat de achterliggende doelstellingen zijn en
kunnen voorspellen welke richting dit de komende
jaren op zal groeien. Op basis van business requirements dus en niet op basis van technologie.
Om de business requirements in korte tijd te doorgronden, begin ik bij de kern. De waardepropositie
van het bedrijf richting haar klanten. Waarom
komen klanten daar? Wat vinden ze wat ze elders
niet vinden? Wat maakt dit bedrijf uniek? En hoe
kan IT daar een bijdrage aan leveren of het zelfs
versterken?
Tracey en Wiersema hebben met hun waardemodel
een bruikbare tool gegeven om hier een referentiekader voor te scheppen en de waardepropositie
expliciet te maken. Door te bepalen of een bedrijf
vooral bestaat vanuit Product Leadership, vanuit
Customer Intimacy of vanuit Operational
Excellence.
En op basis daarvan kun je ook vaststellen of vooral
het product, de klant of het proces centraal staat.
En dat kun je meteen vertalen naar IT. Want wat
is eigenlijk het #kernsysteem: ERP (proces), CRM
(klant) of PIM (product)?
Een ander model dat ik graag toepas is het Business
Model Canvas. Dit model biedt een structuur waarin elk business model kan worden gevangen. Het
richt zich op interne en externe zaken en vertaalt
dit naar kosten en opbrengstenstructuren. Het
maakt scherp wie de klant is, hoe deze benaderd
wordt, welke waarde er geleverd wordt en welke
activiteiten er nodig zijn om dat te bereiken.
Figuur 2 | Business Model Canvas
Bij het invullen van het BMC zouden in principe
alle antwoorden al vast horen te staan. Toch blijkt
dat als dit expliciet gemaakt wordt er vaak nieuwe
inzichten en discussies ontstaan die helpen e.e.a.
scherp te krijgen. Vanuit het BMC kan worden
gedestilleerd welke fundamentele eisen dit aan de
onderliggende IT stelt. En die requirements zullen
dus niet zomaar elk half jaar veranderen.
WERKEN VANUIT BEST-PRACTISES
Hoewel ieder bedrijf anders is en dus de requirements ook verschillen, kan er natuurlijk wel gebruik gemaakt worden van best-practises bij anderen. Soms om deze één op één toe te passen, maar
vooral als referentie om vervolgens tot een eigen
architectuur te komen.
Onderstaand wordt een vijftal best-practises uitgewerkt. In de praktijk kunnen er vaak zo al twee of
drie worden weggestreept zodat snel kan worden
gefocust op één of twee #uitgangspunten en op
basis daarvan nuancering kan worden aangebracht.
De scenario’s starten van minimale complexiteit
naar maximale complexiteit.
Figuur 1 | Waardemodel van Tracey en Wiersema
SCENARIO 1: ALLES IN ÉÉN SYSTEEM
SCENARIO 2: EÉN SYSTEEM IS LEIDEND
De kracht van het eerste scenario is dat alle data
centraal is opgeslagen en er maar één versie van de
werkelijkheid is. Maar de beperking van alles in één
systeem maakt het in de praktijk vaak onrealistisch.
Al was het maar omdat ook externen zoals klanten
en leveranciers vaak toegang tot de informatie moeten krijgen en het niet gewenst is dat die direct tot
het eigen systeem toegang krijgen.
Figuur 3 | Scenario 1 - Alles in één systeem
Het eerste scenario betreft de #integrale oplossing.
Hoewel dit het scenario is waar veel bedrijven ooit
mee zijn gestart, lijkt het inmiddels een onrealistische utopie te zijn geworden. Want hoe groot is de
kans dat je één applicatie vindt die aan alle eisen en
wensen voldoet? En waarom zou je dat willen als
koppelen tegenwoordig geen probleem meer zou
moeten zijn?
Figuur 4 | Scenario 2 - Eén systeem is leidend
Het voordeel van deze ‘architectuur’ is echter
enorm. Alle gegevens worden in één centraal systeem opgeslagen en bewerkt. Er is maar één versie
van de werkelijkheid. Als ergens een wijziging
plaatsvindt, dan hoeft dat maar op één plek. En als
je ooit wilt upgraden naar een nieuwe versie, dan
scheelt het een heleboel tijd in het testen.
Scenario 2 gaat ervan uit dat nog steeds één systeem
centraal staat, maar dat andere systemen kunnen
worden aangekoppeld voor #specifieke doeleinden.
Te denken valt aan een webshop, een portal en/of
een mobiele app. Die functioneren dan als frontend voor een specifieke doelgroep, maar halen en
schrijven hun gegevens uit het leidende systeem.
De keuze om niet alles in één systeem te vangen
biedt functioneel dus mogelijk wel een voordeel.
Maar daar wordt wel een prijs voor betaald. Zeker
in bedrijfsomgevingen waar veel flexibiliteit van de
systemen wordt gevraagd, dus waar veel aanpassingen zijn te verwachten, leiden koppelingen tot veel
extra kosten en doorlooptijd. En wordt het daarmee
mogelijk een beperkende factor.
Dit scenario gaat er dus nog steeds vanuit dat er
één versie van de werkelijkheid is. Er is echter geen
integrale oplossing en er zullen dus koppelingen
moeten worden ontwikkeld en onderhouden. Dit
betekent dat mutaties in het datamodel soms op
meerdere plekken moeten plaatsvinden, maar dat
de complexiteit van de koppelingen meevalt omdat
voor iedereen duidelijk is wat het leidende
systeem is.
Als het kan, adviseer ik dus het liefst een zo simpel
mogelijke architectuur. Met bijvoorbeeld alles in
ERP of alles in CRM. Want wat is er simpeler dan
een integrale oplossing? Maar alleen als het kan.
Want als dit systeem onvoldoende bijdraagt aan de
bedrijfsdoelstellingen, vervalt deze optie wat mij
betreft direct.
Applicaties worden in dit scenario dus ook niet onderling gekoppeld, maar communiceren altijd via
het leidende systeem. Nadeel kan zijn dat daardoor
het centrale systeem moet worden uitgebreid om
data uit andere systemen te kunnen doorgeven
die ver weg staan van het doel van het leidende
systeem. Belangrijk daarom is vroegtijdig vast te
stellen welke #gegevensstromen er uiteindelijk
worden verwacht.
SCENARIO 3: HET PROCES ALS BASIS, APPLICATIES IN HUN
COMFORTZONE
SCENARIO 4: best of breed
Het laatste en meest uitgebreide scenario gaat op
indien de voorgaande scenario’s niet voldoen. In dit
scenario wordt ervan uitgegaan dat er veel verschillende systemen in gebruik zijn die onderling zullen
overlappen qua #datamodel en #functionaliteit.
Figuur 5 | Scenario 3 - Proces leidend
In dit scenario wordt niet geprobeerd om alle data
in vaste systemen vast te leggen. Elk systeem krijgt
in dit scenario een eigen taak en houdt zich aan
zijn eigen scope. Voordeel is dat er maximaal kan
worden uitgegaan van standaard software en dat
elke applicatie die iets bijdraagt aan de bedrijfsdoelstellingen kan worden ingezet.
In scenario 3 is er geen sprake van één leidend systeem, maar wordt per proces bepaald welk systeem
leidend is. Zo kan er onderscheid gemaakt worden
tussen een CRM-systeem voor de front-office en een
ERP-systeem voor de back-office. En eventueel kan
er ook een PIM-systeem worden ingezet rondom
productmanagement.
Nadeel van dit scenario is de #complexiteit. Het
opstellen en bijhouden van een goede architectuur
is onontkoombaar en gezien de strategische waarde
van IT voor veel bedrijven betekent dit dat het ook
aan te raden is om in huis over de juiste competenties te beschikken om e.e.a. zelf in de hand te
houden.
Alle andere systemen worden dan aan één van deze
systemen gekoppeld afhankelijk van bij welk
#proces ze thuishoren. Een scanningsapplicatie in
het magazijn zal dan bijvoorbeeld worden gekoppeld aan ERP (logistiek), terwijl een module om
nieuwsbrieven te versturen dan zal zijn gekoppeld
aan CRM (marketing).
Wanneer een #best-of-breed landschap gewenst is,
zijn er nog verschillende vormen waarin de
#integratie architectuur kan worden opgesteld.
Dit scenario kan goed werken wanneer het proces
duidelijk en vastomlijnd is en wanneer daarin duidelijke afbakening kan plaatsvinden. Als de overlap
van data en processen minimaal is, kan een dergelijk scenario sterk zijn doordat applicaties binnen
hun #comfortzone opereren en er veelal gebruik
kan worden gemaakt van bestaande koppelingen
tussen systemen.
Lastig wordt het indien de overlap van data wel
groot is. Als het resultaat zou zijn dat alle klanten,
alle artikelen, alle prijzen, alle orders, alle facturen,
etc. in meerdere systemen moeten worden vastgelegd, dan betekent dat een uitgebreide en weinig
flexibele koppeling. En als er een extra kernsysteem
komt, zoals bijvoorbeeld een website die met alle
andere systemen data moet gaan uitwisselen dan
zal dat de complexiteit alleen maar doen toenemen.
Point-to-point
De meest bekende en pragmatische integratiewijze
is point-to-point. Er wordt in kaart gebracht welke
applicaties met elkaar gekoppeld moeten worden
en deze worden stuk voor stuk ontworpen, gerealiseerd, getest en in gebruik genomen.
Figuur 6 | Scenario 4 - Point-to-point
Wanneer het aantal koppelingen meevalt en de
verwachting is dat dat in de toekomst ook zo zal
blijven, dan is #point-to-point een prima keuze (ook
in scenario 2 en 3). Maar als het aantal koppelingen
toeneemt, is het risico op zogenaamde spaghetti
groot.
Het overzicht raakt dan kwijt, fouten zijn niet meer
te herleiden en veranderingen of upgrades van
onderdelen zijn risicovol omdat de impact niet te
overzien is.
Message Broker
Wanneer er binnen een applicatielandschap veel
koppelingen zijn, of zijn te verwachten, dan is een
Message Broker van toegevoegde waarde. Een message broker wordt als spin in het web geplaatst en
dient als doorgeefluik van berichten tussen applicaties. Elke applicatie is gekoppeld met de broker en
er zijn geen directe onderlinge koppelingen.
Figuur 7 | Scenario 5 - Message Broker
Voordeel is dat er inzicht ontstaat. Op één plek
zijn alle berichten te herleiden en fouten kunnen
snel geanalyseerd worden. Bovendien maakt deze
architectuur het eenvoudiger om applicaties te upgraden omdat slechts de koppeling met de broker
hoeft te worden getest. Er ontstaat controle over
het gehele landschap.
Enterprise Service Bus
Een ESB lijkt in een aantal facetten op de Message
Broker. Ook deze wordt tussen de applicaties gezet
en regelt centraal de koppelingen. Het verschil met
de broker is dat een #ESB veel minder denkt vanuit
berichten, maar wordt opgezet vanuit processen. Zo
zal de ESB een functie NieuweKlant() ondersteunen
waarop andere applicaties zich kunnen abonneren.
Bij een ESB worden het datamodel en de processen
dus centraal gedefinieerd. Als applicatie hoef je niet
te weten welke andere applicaties er in het landschap zijn, want je communiceert volgens vooraf
opgestelde contracten met de ESB.
Figuur 8 | Scenario 6 - Enterprise Service Bus
Nadeel van een ESB is dat deze vaak hele grote
stukken maatwerk bevat. Een ESB wordt vaak veel
groter en complexer dan vooraf gedacht. En als
er processen wijzigen, moeten alsnog alle koppelingen worden getest. De ESB is op papier dus een
ideale oplossing, maar geeft in de praktijk alsnog
een groot aantal nadelen. En als een bedrijf al een
kernsysteem heeft waarin vrijwel alle data en processen zijn ondergebracht (zoals een ERP-systeem),
dan leidt een ESB tot onnodig veel redundante
logica en lijkt scenario 2 beter toepasbaar.
VAN IT ARCHITECTUUR NAAR IT ROADMAP
Op basis van bovenstaande #best practises help ik
bedrijven om tot een architectuur te komen die het
beste aansluit bij hun bedrijfsmodel en die daadwerkelijk relevant is en bijdraagt aan de bedrijfsdoelstellingen. Dit vertaalt zich onder andere in een
‘ideaal’ applicatielandschap voor die casus.
En dan is het tijd voor de volgende stap. Want als je
eenmaal weet waar je naartoe wilt, kun je een plan
maken in de vorm van een #IT Roadmap. Hou er
hiermee wel rekening mee dat het geen ‘project’
wordt om de architectuur te implementeren, maar
dat het in de praktijk een ongoing proces zal zijn.
Want zowel business als IT zullen continu evolueren en een eindpunt voor wat betreft IT zal in veel
gevallen dus niet bestaan.
Maar voordat daarmee gestart wordt, is het ook
belangrijk te weten waar je staat. Dat kan eenvoudig
door alle actieve applicaties en onderlinge verbanden in kaart te brengen. Welke systemen werkt
iemand gedurende de week mee, welke processen
worden daarmee ondersteund, welke gegevens
worden daarin opgeslagen? Het huidige #applicatielandschap kan zo in beeld worden gebracht als
vertrekpunt.
En van daaruit kan worden bepaald welke stappen
als eerste gezet worden richting de toekomstige architectuur. Welke verbeteringen dragen het meeste
bij aan het bedrijfsresultaat? En welke systemen
moeten actief zijn voordat met andere gestart kan
worden? Een IT Roadmap helpt om het veranderproces expliciet te maken en om vanuit doelstellingen projectmatig stappen voorwaarts te zetten.
WELKE TOOL(S) ZET IK IN?
Ik ben mijn verhaal gestart met te zeggen dat men
niet te snel naar de tools moet grijpen. Maar als de
business doelstellingen helder zijn, de IT Requirements zijn bepaald, de Architectuur is uitgewerkt
en er een Roadmap is opgesteld om vanuit de huidige situatie stappen naar de toekomst te zetten, dan
is de vraag over de tools weer relevant.
Want op het gebied van integratie zijn veel mogelijkheden. Microsoft heeft uiteraard BizTalk als tool
die enerzijds kan worden ingezet als een Message
Broker en anderzijds als ESB (overigens kun je met
BizTalk ook prima Spaghetti realiseren). In de CRM
wereld zijn gespecialiseerde partijen als Scribe
van toegevoegde waarde. En in de ERP wereld van
Microsoft Dynamics wordt veel gewerkt met addons zoals Business Integration Solutions (met onder
andere Connectivity Studio) van To-Increase. En ook
maatwerk is in vrijwel alle gevallen een serieuze
optie om te overwegen. Om de juiste tool te selecteren, is dus meer inzicht nodig in de uiteindelijke
architectuur en de onderliggende overwegingen.
Figuur 9 | Stofzuigertest
Persoonlijk ben ik er wel voor om dergelijke keuzes
op basis van argumenten te maken. Ik heb daartoe
een #beslissingsmatrix opgesteld die sterk is geïnspireerd op de stofzuigertest van de consumentenbond.
Deze bestaat uit de volgende stappen:
1.
Bepaal welke alternatieven je wilt vergelijken.
Zet die onder elkaar.
2.
Bepaal wat de belangrijkste beoordelingscriteria zijn. Zowel functioneel als technisch.
Zowel vanuit business als vanuit IT. Zet die
naast elkaar.
3.
Bepaal per criterium wat de objectieve
requirements zijn om een bepaaldes score
(++, +,=, -, --) te behalen.
4.
Beoordeel vervolgens ieder alternatief voor
elk criterium.
5.
Pas weging toe, bijvoorbeeld op basis van
MoSCoW, om de verschillende criteria het
juiste gewicht te geven. Elimineer de
alternatieven die onvoldoende scoren op
must-haves en couldhaves.
6.
Bereken per alternatief de gewogen score
en de TCO. Op basis hiervan kan de beste
keuze en de beste prijs worden bepaald en
ontstaat beargumenteerde input om een
keuze te maken.
over breinwave
Breinwave ondersteunt organisaties bij het creëren van doorbraken in productiviteit, klantinzicht en klantinteractie. Om dit te realiseren vertrouwen wij op
de kracht die technologie kan bieden; mits goed ingezet kan technologie een nog veel grotere bijdrage leveren bij het realiseren van organisatiedoelstellingen.
Wij zijn onderdeel van de Abecon Groep, een van de toonaangevende Microsoft Dynamics partners in de Benelux.
meer informatie
Joost Bentvelsen - Solution Architect Mobility
+31 6 53 98 44 46
[email protected]