Opzet architectuur goede doelen organisatie

Gebruik van Azure servicebus voor soepele communicatie tussen verschillende systemen

Compassion is een internationale christelijke organisatie die zich bezighoudt met ontwikkelingssamenwerking via financiële adoptie van kinderen in ontwikkelingslanden. Dit gebeurt via een sponsorprogramma, waarbij kinderen/jongeren van 0 tot 22 jaar gesteund kunnen worden.

Compassion werkt vanuit een christelijke visie en met lokale medewerkers die de problemen en omstandigheden in hun wijk, dorp of stad het beste kennen. In 2017 werden er meer dan 1,9 miljoen kinderen ondersteund via bijna 7.000 lokale kerken in 25 landen in Azië, Afrika en Latijns-Amerika.

Covadis werkt sinds 2013 voor Compassion. Sinds die tijd werken we intensief samen en hebben we veel contact. Korte lijnen: er is direct contact tussen Compassion en de ontwikkelaars van Covadis. We komen regelmatig bij elkaar over de vloer.

De vraag:

Aanpassing architectuur

Compassion Nederland is onderdeel van Compassion International. Compassion International is het ‘hart’ van de organisatie en is gevestigd in Amerika. Wereldwijd kennen zij partnerlanden, waaronder Nederland. Deze partnerlanden hebben landkantoren, van waaruit sponsoren voor kinderen gezocht worden. In de projectlanden heeft Compassion veldkantoren. Vanaf daar werken zij samen met kerken.

Alle landen werken voor een deel met één centraal softwaresysteem, ontwikkeld door Compassion International, en voor een deel met een eigen softwaresysteem. Het centrale software systeem van Compassion International is het hart van alle software en data. De software van alle land- en veldkantoren communiceren hiermee.

Als er een sponsor wordt gezocht voor een kind, of andersom, dan wordt zo'n aanvraag via een webservice van het land- of veldkantoor naar de centrale software geleid. Naast dit centrale systeem werkt Nederland met eigen softwaresystemen. Bijvoorbeeld SalesForce (een CRM-systeem), een eigen database, de website van Compassion, etc. Om de communicatie tussen deze systemen op de juiste manier te begeleiden, is een aanpassing van de architectuur nodig.

De oplossing:

Inrichting Azure servicebus

Covadis heeft hiervoor een servicebus ingericht, die ervoor zorgt dat het berichtenverkeer tussen alle systemen én de systemen op het hoofdkantoor in Amerika goed verloopt. Als er bijvoorbeeld in het CRM-systeem een sponsor wordt aangemaakt, dan wordt er een bericht op de servicebus geplaatst, waardoor andere systemen weten dat deze sponsor is aangemaakt.

Een servicebus is een architecturale softwareconstructie die communicatie tussen verschillende services vereenvoudigt. In dit geval gaat het dan om informatie rondom de sponsoring, informatie rondom giften en communicatie tussen kind en sponsor.

Technieken

Covadis heeft daarnaast een API ontwikkeld die zorgt voor de koppeling tussen een aantal van deze systemen. De API is ontwikkeld in .NET-core.

Zowel de servicebus als de API zijn een 'black box' en hebben dus geen userinterface. De eigen database is een SQL Server-database voor de opslag van metagegevens.