Menschen von oben fotografiert, die an einem Tisch sitzen.

adesso Blog

Bei adesso stehen wir im Kundenkontext oft vor der Aufgabe, dass viele verschiedene Systeme zu einem Gesamtgebilde zusammengefügt werden sollen. Wie Menschen müssen auch Systeme zum reibungslosen Austausch miteinander „sprechen“. Und natürlich am besten so, dass keine Verständigungsprobleme entstehen. Wenn dies in derselben „Sprache“ stattfindet, ist das oft kein großes Hindernis – so ist die Kommunikation, bis auf eventuell unterschiedliche Dialekte, schließlich die gleiche. Wenn mehrere Komponenten mit unterschiedlichen Sprachen und unterschiedlichsten technischen Bedürfnissen aufeinandertreffen, wird es aber oft chaotisch und schwierig.

Nicht nur im technischen Umfeld spricht man dabei gerne von Integration. Dabei ist die Integration von Datenbanken, Frontend- und Backend-Komponenten und/oder -Systemen vielleicht das bekannteste Beispiel in unserem eher technischen Umfeld. Um dies in Zukunft einfacher, standardisierter und schneller lösen zu können, haben wir MuleSoft für uns entdeckt und lieben gelernt. Von dieser Liebe möchte ich euch in diesem Blog-Beitrag gerne etwas mitgeben.

Was ist eigentlich MuleSoft?

MuleSoft ist eine Integrationslösung von Salesforce, mit deren Hilfe REST APIs schnell und effizient erstellt werden können. Dabei spielt MuleSoft seine Stärken bei der Integration verschiedenster Plattformen voll aus.

So können vordefinierte Konnektoren für sämtliche Datenbanken, Protokolle, Office-Lösungen oder Queues verwendet werden, ohne dass viel Aufwand in die Eigenimplementierung gesteckt werden muss. Versierte Userinnen und User aus dem medizinischen Bereich werden hier beispielsweise einen HL7 Connector finden, der sogar bei der Implementierung der etwas komplizierten Nachrichten behilflich ist. Vielen anderen wird die Integration von Salesforce und SAP ihr Leben spürbar erleichtern. Und das alles kann beliebig kombiniert werden und die Datensätze lassen sich mit Hilfe einer eigenen Script-Sprache – Dataweave genannt – beliebig hin und her transformieren. Prinzipiell ist dies vergleichbar mit einem Live-Übersetzer. Auch dieser übersetzt simultan das Gesprochene und reicht dies in einer anderen Sprache weiter. Nun versteht der Gegenüber das Gesprochene ohne Probleme, ganz ohne diese Sprache selbst sprechen zu müssen.

Im Kern kann man zusammenfassend sagen: MuleSoft sorgt dafür, dass die Kommunikation mit anderen Systemen, die sonst nie oder nur widerwillig oder mit viel Aufwand miteinander „sprechen“ würden, reibungslos abläuft.

Und warum nutzt adesso MuleSoft?

Wir begegnen oft Lösungen, in denen Kundinnen und Kunden auf Point-to-Point-Integrationen setzen und für jeden Client eigene Backend-Service-Anbindungen implementieren (Mobile/Web etc.). Im besten Fall wird auch hier auf Microservices gesetzt und an die jeweiligen Komponenten angebunden. Aber auch dies hat Grenzen. Sie sind in der Regel pünktlich, günstig im Budget und für einen einzigen Client oft ausreichend. Dennoch sind diese Lösungen sehr oft begrenzt wiederverwendbar, fest an ihre Komponenten gekoppelt und bei Veränderungen nur schwer erweiterbar

Um dies besser machen zu können, richten wir uns bei der Umsetzung nach dem von MuleSoft vorgeschlagenen APILed-Ansatz. Dabei werden die Services in ein Drei-Schichten-System unterteilt: Experience, Process und System Layer.


Das Drei-Schichten-System, Quelle: MuleSoft

Auf die APIs im Experience Layer greifen die Clients zu. Jeder Client kann dabei eine eigene Experience API für sich beanspruchen. Diese stellen die gewünschten Funktionalitäten zur Verfügung und greifen dabei auf die APIs im Process Layer zu. Im Process Layer werden die Business-Funktionalitäten implementiert. Da für Business-Logiken in der Regel Daten von Fremdsystemen benötigt werden, greifen sie auf die System Layer APIs zu. Nur die API-Schicht hat einen direkten Draht zu den eigentlichen Systemen und kommuniziert mit diesen (beispielsweise Datenbanken, andere SOAP/Rest Services, Salesforce und SAP). Jeder Service ist dabei auf ein System spezialisiert und kümmert sich auch nur um dessen Anbindung. Geschützt werden können die APIs, in allen Schichten, mit einer Client ID/Secret Definition oder einer SSH-Key-Hinterlegung.

Ein weiterer und essenzieller Fakt, wieso wir MuleSoft einsetzen, ist die Java-Basis vom ganzen Mikrokosmos. Jedem Java-Developer wird gleich auffallen, dass die Entwicklungsumgebung eine Weiterentwicklung von Eclipse ist. Die Projektstruktur mit Sources- und Resources- Foldern erinnert auf den ersten Blick an eine normale Java-Anwendung. Durch die Einbettung von Maven können wir auf eine große Repository-Welt zugreifen. Selbstverständlich liefert MuleSoft auch das ein oder andere Standard-Repo mit.

Durch Common/System Properties und Spring Enterprise Beans kann die API für jede Umgebung fit gemacht werden. Die Einbindung des Java-Keystore/TrustStore-Verfahrens macht auch das komplizierte Prinzip „Encryption/Decryption“ vertraut und einfacher handhabbar. Aufgrund der bereits vorhandenen tiefgreifenden Java-Expertise, fiel der Umstieg besonders leicht.

Zu Beginn wird dabei im MuleSoft Design Center eine auf RAML oder OPENApi basierende REST Spezifikation implementiert. Im nächsten Schritt wird diese freigegeben und darauf kann dann im Exchange zugegriffen werden. Im Exchange finden sich auch die bereits erwähnten zahlreichen Konnektoren. Es wird ein Repository dargestellt, das auch per Maven Repo angebunden werden kann.

Im Anypoint Studio wird die API anschließend implementiert und die Flows werden erstellt. Diese können mit Hilfe von MUnit mit Tests abgesichert werden.

Im Runtime Manager wird die API zum Schluss für jede zuvor definierte Stage bereitgestellt und zur Laufzeit verwaltet.

Das Anypoint Management Center, Quelle: MuleSoft

Das Anypoint Management Center, Quelle: MuleSoft

Essenziell für viele unserer Kundinnen und Kunden ist dabei die Freiheit, die MuleSoft Runtime auf verschiedenen Umgebungen laufen zu lassen. So kann jede beliebige Cloud-Lösung genutzt werden (beispielsweise AWS), die entweder ganze OnPrem auf eigenen Servern betreibt oder die eigene Cloud-Lösung von MuleSoft verwendet.den

Fazit

MuleSoft ist mittlerweile in unserem Tech Stack nicht mehr wegzudenken und wir pflegen eine vertrauensvolle Partnerschaft mit dem Hersteller. Wir können uns somit viel mehr auf die essenziellen Dinge konzentrieren und diese vorantreiben – etwa die Konzeption der Gesamtarchitektur oder die Implementierung der Daten-Transformationen. Hier wollen wir zukünftig unsere MuleSoft-Kompetenz weiter ausbauen und ein Center for Enablement, also ein Team mit Expertinnen und Experten, das Kundinnen und Kunden und interne Teams bei ihrer Arbeit mit MuleSoft unterstützt, aufbauen.

Es gibt noch viel Spannendes zu entdecken und wir sind motiviert, MuleSoft in vielfältigen Projekt- und Kundenkontexten einzubringen.

Mit Hilfe von MuleSoft haben wir beispielsweise bei einem großen Textil-Retailer die Integration einer Plattform, die der Kundenbindung dient, eingeführt und die Warehouse-Logistikverwaltung auf ein neues Level gehoben.

Einen anderen Kunden, der aus dem Energiesektor stammt, konnten wir bei der Weiterentwicklung des Digital-Sales-Bereiches unterstützen. In einem weiteren Projekt wurden bei einem großen deutschen Zertifizierungsdienstleister die Business-Prozesse durch unsere MuleSoft-Beratung und -Implementierung deutlich vereinfacht.

Wenn ihr gern mehr erfahren möchtet – sei es zu bestimmten Details der MuleSoft-Lösung oder über weitere Anwendungsbeispiele –, dann sprecht mich gern an.

Bild Tony Horst

Autor Tony Horst

Tony Horst ist ein begeisterter Senior Software Engineer bei adesso, der seine Schwerpunkte auf die Entwicklung und Customizing von Softwaresystemen mit MuleSoft und Java legt. Er hat dabei erst im letzten Jahr MuleSoft so richtig kennen und lieben gelernt. Tony war bereits in zahlreichen Branchen unterwegs und hat seit 2011 als Entwickler und Scrum Master zahlreiche Projekte mit entwickelt und betreut.

Diese Seite speichern. Diese Seite entfernen.