Servicemix ESB

servicemix

Twee maanden geleden vonden wij nog een standalone Progress 4GL applicatie uit 1996, maar dit soort gevallen zijn tegenwoordig extreem zeldzaam. De meeste applicaties hebben één of meer koppelingen met andere systemen. Bij kleinere systemen kan dit worden opgelost door die koppeling zelf te schrijven in de originele software, maar dit wordt al snel gecompliceerder wanneer systemen beginnen te groeien. In deze blog vertellen we over Servicemix Enterprise Service Bus (ESB), een handige open source integratieoplossing waar ook klein mee kan worden begonnen.

 

Complexe koppelingen voorkomen
Integratie begint vaak met een eerste eenvoudige koppeling die prima door de ontwikkelaars kan worden geschreven in de originele software. Dit kan initieel eenvoudig gerealiseerd worden, omdat er in dit stadium nog niet uitgebreid is nagedacht over de niet functionele eisen. Veiligheid, schaalbaarheid, testbaarheid, flexibiliteit, beschikbaarheid, ontkoppeling en beheersbaarheid zijn vaak nog niet aan de orde in dit stadium. Veelal worden deze pas meegenomen naar aanleiding van incidenten. Dan vergt het aanzienlijk veel programmeer energie om dit alsnog in de software voor elkaar te krijgen. De complexiteit van de koppeling heeft dus de neiging toe te nemen.

 

Integratiesoftware
Tot op zekere hoogte blijven deze problemen beheersbaar, maar er komt een moment waarop het verstandig is om deze koppeling uit te besteden aan een extra stuk software. Software die gespecialiseerd is in alle aspecten van integratie. Een van deze integratie oplossingen is een ESB. Wanneer deze koppeling eenmaal is aangemaakt geeft het de mogelijkheid om alle extra eisen in te regelen via de ESB.

 

Klein beginnen
Het beeld dat de implementatie en het gebruik van een ESB erg complex en duur is, is tegenwoordig achterhaald. Zoals bij veel onderwerpen in de IT, worden oplossingen een commodity waardoor er ook steeds meer goede, goedkope en toegankelijke oplossingen beschikbaar komen. Daarbij zijn er tegenwoordig ook geen grote wijzigingen in architectuur meer nodig, men kan klein instappen en functionaliteit introduceren wanneer deze gewenst is.

 

Inzetten ESB
Het moment wanneer het verstandig is een ESB in te zetten, hangt af van de combinatie van factoren (en toekomstige verwachtingen):
• Hoeveel koppelingen zijn er ? Zijn dit interne of externe koppelingen ?
• Zijn er eisen aan de koppelingen ?
• Wat is de complexiteit van de koppelingen ?
• Is er hergebruik van koppelingen ?
• Moeten de systemen ontkoppeld worden ?
• Wat is de impact op bestaande software
• Wat zijn de kosten ?
• Welke kennis is er nodig, voor implementatie en beheer ?

 

Kennisdeling
Flusso gebruikt Apache Servicemix ESB bij meerdere software projecten bij klanten. Doordat deze open source is, maar ook in een supported commerciële versie verkrijgbaar is, biedt dit een bijzonder mooi groeipad om klein en goedkoop in te stappen en toch door te kunnen groeien wanneer nodig. De kennis wordt gedeeld over meerdere projecten en klanten. Hierdoor is er al vroeg in het traject een punt waar er een uitgebreide gespecialiseerde integratie oplossing ingezet kan worden en deze mee kan groeien met het project.

 

Commerciële ESB versus Open Source ESB
Een belangrijk verschil tussen een commerciële ESB (denk aan bijvoorbeeld Sonic, BizzTalk, etc) en een Open Source ESB zijn uiteraard de licentiekosten; een eenvoudige ROI kan worden gemaakt zodat we een goede financiële beslissing kan worden genomen. Bijkomend voordeel is dat de Open Source ESB altijd de marktstandaarden volgt (daarom is het Open Source) en dus altijd up-to-date is!

ESB