Onlangs tekende Appronto een nieuwe partnerovereenkomst met Solace, een erkende specialist op het gebied van messaging software. Een mooie aanvulling op de Boomi- en Mendix-diensten die we al aanbieden en een uitbreiding van onze samenwerking met Solace.
Dankzij de diensten en oplossingen van Solace wordt het nog gemakkelijker om organisaties te voorzien van een robuuste, flexibele en slimme integratie-architectuur. In dit artikel bespreken we de belangrijkste voordelen die de nauwe samenwerking met Solace oplevert.
Over Solace
Solace is een Canadees softwarebedrijf met ruim 300 medewerkers en gespecialiseerd in messaging software. Het Solace Pubsub+ platform is een geavanceerde messaging-oplossing waarmee je iedere integratie-oplossing kunt transformeren in een real-time en event-driven platform. Of zoals Solace het zelf zegt: een compleet event-streaming en management platform voor een real-time bedrijf.
Gerenommeerde merken als SAP, Mercedes-Benz, Renault en de London Stock Exchange maken gebruik van de oplossingen van Solace. Wist je bijvoorbeeld dat de messaging-oplossing van SAP S4/Hana gebaseerd is op Solace? Dat zegt genoeg!
Wat is messaging?
De term messaging verwijst naar technologie waarmee systemen informatie kunnen delen zonder dat er directe verbindingen zijn. Messaging staat ook wel bekend als message-oriented middleware, of gewoon middleware.
Messaging is analoog aan het versturen van post: brieven of pakketten aan een vervoerder overhandigen, aangeven hoe ze verstuurd moeten worden en erop vertrouwen dat ze zullen aankomen. Daarnaast zijn er systemen die extra informatie meegeven aan berichten zodat de messaging software weet hoe het bericht moet worden afgehandeld.
In de basis bestaat messaging uit het volgende:
- Publisher: het systeem dat een bericht verzendt of publiceert, ook wel producer genoemd
- Message: het bericht dat de publisher wil versturen. Berichten zijn vaak gebeurtenissen (events), maar kunnen ook vragen, opdrachten en andere informatie bevatten.
- Subscriber: de uiteindelijke ontvanger van het bericht, ook wel consumer of abonnee genoemd
- Message queue: een opslagruimte waar een bericht wordt opgeslagen totdat het wordt geconsumeerd door een applicatie of wordt verwijderd als het bericht verlopen is.
Een message queue verwijdert een bericht dus pas uit een queue als het ook daadwerkelijk is afgeleverd op de eindbestemming. Dit noemen we “gegarandeerd afleveren van berichten”. Krijg je een foutmelding? Dan wordt het betreffende bericht een aantal malen automatisch opnieuw aangeboden. Kan het bericht niet afgeleverd worden? Dan wordt het teruggezet op de queue zodat berichten niet verdwijnen.
Wat is een event?
Een event is een gebeurtenis of een statuswijziging in een systeem. Een paar voorbeelden:
- Klant A heeft Order X is aangemaakt
- Order X is verstuurd naar de klant
- Order X is gefactureerd
- Klant A heeft een klacht ingediend
- De temperatuur van object X is veranderd
- Voertuig X heeft zich verplaatst van locatie A naar B
- Lantaarnpaal X is uitgevallen
Wat is een event-driven-architectuur?
De term “Event-Driven-Architectuur” (EDA) bestaat al heel lang en is niks nieuws. Maar het is de laatste jaren steeds populairder geworden omdat data steeds meer real-time of near-real-time verwerkt moet worden. Zodra er iets gebeurt, wordt dit doorgegeven zodat geabonneerde systemen hier direct van op de hoogte worden gesteld.
In een EDA wordt data verwerkt per “event” in plaat van per “batch”. Data wordt in near-real-time of real-time verwerkt. Een ander kenmerk is dat events worden "gepusht” van de producer naar de consumer in tegenstelling tot het voortdurend “pollen” voor updates vanuit de integratie-oplossing.
Voordelen een event-driven architectuur
Ontkoppelen van systemen
Met EDA kunnen applicaties events publiceren zonder zich druk te maken over hoe zij zullen worden gebruikt en verwerkt. Dit betekent bijvoorbeeld dat producers in Java zijn geprogrammeerd, en consumers in Python, .NET of Mendix zijn geschreven. Dit heeft als voordeel dat, als je bijvoorbeeld een .NET systeem wil vervangen door een Mendix App, dit voor de producer niet relevant is (loosely-coupled).
Asynchroon verwerken van berichten
Met een niet-EDA systeem gebruik je waarschijnlijk synchrone RESTFul API’s om data uit te wisselen. Een voorbeeld:
- Service A (producer) stuurt een order naar service B (consumer) via een REST call
- Service A moet daarbij wachten op een antwoord van service B voordat het verder kan met andere taken.
- Stel dat de service B overbelast of down is, dan zou dat de orderverwerking kunnen blokkeren.
- Conclusie: service A is volledig afhankelijk van service B. Dat wil je dus niet.
Met een asynchrone versie van dit voorbeeld wordt het allemaal wat simpeler.
- Service A (producer) publiceert een event (order)
- Service A hoeft daarbij niet te wachten op een antwoord van service B
- Service B (consumer) haalt het event op wanneer de service er tijd voor heeft. Dat zou direct kunnen zijn of later als er nog andere orders in de queue staan.
- Stel dat de service B overbelast of down is, dan verstoort dat service A niet
- Conclusie: service A is volledig onafhankelijk van service B
Schaalbaarheid
- Wanneer services niet rechtstreeks met elkaar communiceren, is het niet altijd nodig om te integreren via (REST) API's. Hiermee voorkom je onnodige complexiteit.
- Over het algemeen is het asynchroon verwerken van data veel efficiënter, verbruikt het minder infra-resources en beschermt het backend systemen tegen overbelasting.
- Het pushen van events in plaats van het voortdurend “pollen” naar events (is er nog iets gebeurd?)
- Subscribers zelf kunnen bepalen hoeveel berichten ze tegelijkertijd willen. Het voorkomt dus dat backend-systemen worden overbelast. Tegelijkertijd hoeven publishers niet te wachten op een response van de subscriber.
Waarom Appronto kiest voor Solace Pubsub+
Er zijn verschillende messaging oplossingen te verkrijgen in de markt. Tot op heden werkte Appronto met Boomi Atom Queueing (AQ) of met JMS gebaseerde platformen zoals ActiveMQ.
Boomi Atom Queueing is een messaging oplossing die voor kleine klanten prima is in te zetten. Onder de motorkap is het een lightweight versie van de opensource broker Apache ActiveMQ 5.x.
- De voordelen zijn dat het volledig geïntegreerd is in Boomi en dat het supersimpel is qua opzet en gebruik.
- De nadelen zijn dat het op dezelfde Boomi run-time / server draait en daardoor niet schaalbaar is, en qua features ondersteunt het enkel recht-toe-recht-aan use cases. Message selectors en dynamic topics worden bijvoorbeeld niet ondersteund.
JMS-gebaseerde systemen zijn in de basis prima, maar hebben als nadeel dat je, in combinatie met Boomi, slechts een beperkt aantal features kunt gebruiken. En wij horen regelmatig dit dat dit niet alleen voor Boomi geldt. Appronto geeft daarom de voorkeur aan native connectors van Boomi.
En daarmee komen we op Solace. Solace heeft in 2019 een native connector aangekondigd voor het Boomi-platform. Appronto heeft in 2019-2020 samen met Solace de native connector getest en inmiddels is deze connector sinds juli 2020 beschikbaar voor alle Boomi-klanten wereldwijd.
Maar waarom is Solace nu zo’n interessante oplossing? Het Solace Pubsub+_platform is een messaging-oplossing waarmee je een bestaande integratie-oplossing kunt transformeren in een real-time en event-driven platform. Je kunt het gebruiken in combinatie met Boomi, maar ook als aanvulling op een bestaande niet-Boomi omgeving, Microservices, IoT-devices, een multi-app Mendix-omgeving, een ander integratieplatform of als alternatief voor Kafka.
De voordelen van de combinatie Boomi-Solace zijn legio
- Geschikt voor zowel starters als enterprise-omgevingen
- Native Boomi connector met geavanceerde opties zoals message priorities, max. time-to-live, max. retries, message selectors
- Support voor directe berichten (in memory) en gegarandeerde berichten (persisted)
- Support voor dynamic topics en topic hiërarchieën
- Connectivity options zoals Spring, Java, Websockets, IOT (MQTT), etc.
- Event mesh: sync meerdere brokers met elkaar in een multi-cloud omgeving (Amazon, Google, Azure, on-premise)
- Opnieuw afspelen van berichten (message replay)
- Support voor event-streaming
- Schaalbaar, goede performance en betrouwbaar
Optionele features
- Event portal: import wizard zodat je de Boomi operation kunt genereren met de
- Boomi import wizard
- Hoogbeschikbaarheid
- Real-time event discovery
- Advanced monitoring
Kortom, het Solace Pubsub+_platform is een messaging-oplossing waarmee je een nieuwe Boomi of een bestaande integratie-oplossing kunt transformeren in een real-time en even-driven platform.
Meer weten?
Ben je ook benieuwd naar de vele mogelijkheden die voortvloeien uit de nieuwe partnerovereenkomst tussen Appronto en Solace? Met Morentz en MainPlus zijn de eerste twee klanten al aan boord! Meer weten? Bel ons dan gerust op 085 800 0045 of stuur een mailtje naar sales@appronto.nl.