Die Middleware: Eine API für alle(s)
Middleware – Was ist das?
Der Begriff Middleware ist im Grunde ein sehr treffendes Kunstwort für eine besondere Art von Web-Service. Es handelt sich also um einen Dienst im Internet, eine Software, welche in der “Mitte” verschiedener, unabhängiger Systeme steht und den Austausch von Daten zwischen diesen ermöglicht.
Viel mehr als nur ein Dienst
Was eine Middleware nun aber von herkömmlichen Web-Services unterscheidet, ist vor Allem die Flexibilität und die individuelle Anpassbarkeit. Zwar ist es bei den meisten Web-Services üblich, dass diese den Zugriff auf eine zentrale Datenbank nach außen hin für verschiedenste Client-Systeme zur Verfügung stellen. So kann in einem Unternehmen beispielsweise auch ein Mitarbeiter im Außendienst unterwegs über eine App auf dem Smartphone aktuelle Statistiken abrufen, ohne sich dazu erst im Backend einer Software anmelden zu müssen. Auch ein automatisierter Austausch von Daten ist über einen Web-Service möglich – gänzlich ohne grafische Oberfläche greifen geplante Tasks oder CronJobs auf den Dienst zu und fragen aktuelle Daten ab, importieren oder aktualisieren Datensätze.
Eine Middleware bietet all diese Möglichkeiten ebenfalls, erweitert diese jedoch um drei wesentliche Aspekte, auf die im folgenden genauer eingegangen wird.
1. Eine grafische Oberfläche
Das wohl auffälligste Merkmal einer Middleware – zumindest für den “gemeinen” Endanwender – ist die Möglichkeit einer GUI (Graphical User Interface, “Grafische Benutzeroberflache”). Die Betonung liegt hierbei auf der “Möglichkeit”, denn eine grafische Oberfläche ist natürlich für den Betrieb nicht zwingend notwendig.
In manchen Fällen bietet diese aber entscheidende Vorteile, da sie einem Benutzer erlaubt, ohne große Umwege und insbesondere ohne Fachkenntnisse mit der Middleware zu interagieren. Grundliegende Einstellungen der Middleware, eine Voreinstellung wie z. B. die Sortierung oder Gruppierung von Daten, das tabellarische Anzeigen von Daten, das Eingeben und Ändern von Datensätzen bis hin zu grafischen Auswertungen und Charts – die Möglichkeiten sind hier quasi unbegrenzt.
Eine Middleware stellt also nicht nur Daten zur Verfügung, sondern besitzt darüber hinaus auch die Fähigkeit, diese Daten für den Endbenutzer lesbar und optisch ansprechend darzustellen. Meistens bietet eine Middleware zu diesem Zweck ein modulares Framework, Entwicklungsrichtlinien oder in irgendeiner Form standardisierte Bausteine, um diese GUI schnell und unkompliziert je nach Anforderung zu erweitern und anzupassen.
2. Flexibilität nach innen
Im Gegensatz zu einem Web-Service bietet eine Middleware nicht nur nach außen die Möglichkeit, an praktisch jedes System angebunden zu werden, sondern auch in die entgegengesetzte Richtung: Durch interne Prozesse und Verarbeitungsmechanismen, die unter Punkt 3. erklärt werden, ermöglicht eine Middleware die Kommunikation mit unterschiedlichsten Host-Systemen und Datenbanken.
Das bedeutet, dass Daten nicht länger in einer bestimmten Datenbank sein müssen, um über die API für den Client zur Verfügung zu stehen, sondern je nach Anfrage aus verschiedenen Systemen bezogen werden können. Ein Online-Händler fragt beispielsweise den aktuellen Lagerbestand seiner Artikel ab, welche die Middleware ihrerseits vom Shop-System bezieht. Unterschreitet ein Artikel nun den festgelegten Mindestbestand, hat der Benutzer die möglichkeit, an seinen Lieferanten mit nur einem Mausklick eine Bestellung zu senden – dazu greift die Middleware auf den Mailserver oder das Postfach des Benutzers zu und versendet anhand der Daten des betroffenen Artikels eine E-Mail.
Die Middleware greift also auf verschiedenste Datenquellen gleichzeitig zu, kann diese untereinander vergleichen oder konsolidieren und Datenbank- oder Serverübergreifend verarbeiten. Es wird also im wahrsten Sinne des Wortes eine “runde Sache” aus einem einfachen Dienst – denn eine Middleware kommuniziert in alle Richtungen und agiert als Zentrum einer ansonsten entkoppelten Softwarelandschaft.
3. Automatisierung und Konsolidierung
Wie bereits erwähnt verfügt eine Middleware nicht selten über ein internes System zur Verarbeitung und Aufbereitung von Daten. Eine oder mehrere eigene Datenbanken dienen ihr dabei als Zwischenspeicher sowie als Ablage für Zuordnungsinformationen, Einstellungen, Log-Daten und allem, was sonst so zur “Verwaltung” der Daten nötig ist.
Mit der Anbindung an verschiedene Host-Systeme, Server und Datenbanken kommen natürlich auch neue Anforderungen und Möglichkeiten. Vor allem der Austausch und die Konsolidierung von Daten in verschiedenen Systemen ist eine nicht zu unterschätzende logistische Herausforderung, insbesondere dann, wenn diese Systeme und deren Anwender voneinander abhängig sind und sich deren Geschäftsprozesse gegenseitig beeinflussen. Die Middleware dient dann als universelle Schnittstelle und beinhaltet die nötige Logik, um diese Daten in einen gemeinsamen Kontext zu bringen.
Um das alles im Hintergrund und vor Allem ohne unnötige Beeinträchtigung des Workflows für den Benutzer zu vollziehen, werden diese oftmals sehr komplexen Rechenabläufe in der Regel automatisiert ausgeführt. Das “Herzstück” dieser Automatisierung stellt ein so genanntes Cron-System dar, welches bei vielen Betriebssystemen bereits vorhanden ist und in regelmäßigen Abständen bestimmte Aufgaben startet – die CronJobs. Eine Middleware setzt häufig auf diesem System auf und nutzt es sozusagen als “Uhrwerk”. Das ermöglicht das Ausführen von zeitgesteuerten Prozessen, welche etwa anhand vorher festgelegter Kriterien bestimmte Daten verarbeiten, CSV-Dateien einlesen oder schreiben, E-Mails versenden oder auch auf einen externen Dienst zugreifen, um Daten auszutauschen. Da das Cron-System typischerweise direkt auf dem Host-Server der Middleware läuft, ist es für den Anwender nicht ohne Weiteres bemerkbar und beeinträchtigt ihn nicht in seiner Arbeitsweise. Extrem rechenintensive Prozesse werden zudem meist zeitlich so gelegt, dass sie zu möglichst ruhigen Phasen des Geschäftsbetriebes ausgeführt werden – beispielsweise mitten in der Nacht.
Im Falle des Beispiels aus 2. bedeutet das also, dass die Middleware unabhängig vom Benutzer von Zeit zu Zeit den Mindestbestand aller Artikel im Shop überprüft und die Bestellungen an den entsprechenden Lieferanten selbstständig versendet. Der Shop-Betreiber muss sich um diesen Vorgang nicht mehr kümmern und kann sich auf das Tagesgeschäft konzentrieren.
Die vermeidbaren Nachteile
So nützlich eine Middleware auch ist, so anfällig ist sie auch für die typischen Nebenwirkungen. Denn mit der Flexibilität und den individuellen Anpassungen für verschiedene Anwender steigt auch die Datenmenge und somit die Last für den Server, die Suche nach der sprichwörtlichen Nadel im Heuhaufen wird umso aufwändiger, je größer der Heuhaufen wächst. Deshalb wird der Begriff Middleware häufig mit Schwerfälligkeit oder schlechter Performance in Verbindung gebracht.
Das stimmt nur bedingt – “Big Data” gehört heute ohnehin schon zum Standard-Vokabular eines jeden Softwareentwicklers, der mit Datenbanken zu tun hat. Große Datenmengen verursachen lange Ladezeiten, wenn beim Entwickeln der Datenstruktur so getan wird, als hätte man keine großen Datenmengen. Und je länger man diese Problematik ignoriert, desto schwerwiegender wird sie.
Deshalb ist es bei der Entwicklung und Konzeption einer Middleware besonders wichtig, gleich von Anfang an mit erheblichen Datenmengen zu kalkulieren und dementsprechend sowohl die Datenbank als auch die Zugriffe darauf zu optimieren. Das kann beispielsweise durch das Setzen von Indizes, das Abtrennen oder Aufteilen bestimmter Daten, Summentabellen, Caching und Abkoppeln von rechenintensiven Prozessen (siehe CronJobs) passieren. Geschieht das nicht, oder nicht richtig, so kommt es früher oder später zu Performance-Problemen, welche eigentlich leicht vermeidbar wären – Techniken dazu gibt es bereits genug.
Fazit
Eine Middleware bietet entscheidende Vorteile bei der Anbindung mehrerer ansonsten nicht kompatibler Systeme, wenn sie richtig Umgesetzt wird. Vor allem im Bereich der Webanwendungen schießen neue Softwarelösungen wie Pilze aus dem Boden. Jede dieser Lösungen hat in einem gewissen Anwendungsgebiet ihre Daseinsberechtigung und ist oftmals für denjenigen, der sie täglich verwendet, unverzichtbar.
Dieser Umstand macht eine zentrale Verwaltungsstelle für wichtige Daten umso nötiger, weshalb sich sendeffect bereits sehr früh entschlossen hat, die “sendeffect Middleware” zu entwickeln, welche mit jeder Kundenanforderung erweitert werden kann und so die Möglichkeit bietet, nahezu jedes System anzubinden. Die einfache Erweiterbarkeit, die vielfältigen realisierbaren Anwendungsszenarien und die hohe Verfügbarkeit von Daten stellen dabei die wichtigsten Faktoren dar, die diese Entscheidung beeinflussten.
---
Mehr wissenswertes zum Thema E-Mail Marketing finden Sie auf unserem Blog: www.sendeffect.de/blog
---
Ansprechpartner
Sergei Brehm
sendeffect
Schulgasse 5
D-84359 Simbach am Inn
Telefon: +49 (0) 8571 - 97 39 69-9
E-Mail: service@sendeffect.de
https://www.sendeffect.de
Der Begriff Middleware ist im Grunde ein sehr treffendes Kunstwort für eine besondere Art von Web-Service. Es handelt sich also um einen Dienst im Internet, eine Software, welche in der “Mitte” verschiedener, unabhängiger Systeme steht und den Austausch von Daten zwischen diesen ermöglicht.
Viel mehr als nur ein Dienst
Was eine Middleware nun aber von herkömmlichen Web-Services unterscheidet, ist vor Allem die Flexibilität und die individuelle Anpassbarkeit. Zwar ist es bei den meisten Web-Services üblich, dass diese den Zugriff auf eine zentrale Datenbank nach außen hin für verschiedenste Client-Systeme zur Verfügung stellen. So kann in einem Unternehmen beispielsweise auch ein Mitarbeiter im Außendienst unterwegs über eine App auf dem Smartphone aktuelle Statistiken abrufen, ohne sich dazu erst im Backend einer Software anmelden zu müssen. Auch ein automatisierter Austausch von Daten ist über einen Web-Service möglich – gänzlich ohne grafische Oberfläche greifen geplante Tasks oder CronJobs auf den Dienst zu und fragen aktuelle Daten ab, importieren oder aktualisieren Datensätze.
Eine Middleware bietet all diese Möglichkeiten ebenfalls, erweitert diese jedoch um drei wesentliche Aspekte, auf die im folgenden genauer eingegangen wird.
1. Eine grafische Oberfläche
Das wohl auffälligste Merkmal einer Middleware – zumindest für den “gemeinen” Endanwender – ist die Möglichkeit einer GUI (Graphical User Interface, “Grafische Benutzeroberflache”). Die Betonung liegt hierbei auf der “Möglichkeit”, denn eine grafische Oberfläche ist natürlich für den Betrieb nicht zwingend notwendig.
In manchen Fällen bietet diese aber entscheidende Vorteile, da sie einem Benutzer erlaubt, ohne große Umwege und insbesondere ohne Fachkenntnisse mit der Middleware zu interagieren. Grundliegende Einstellungen der Middleware, eine Voreinstellung wie z. B. die Sortierung oder Gruppierung von Daten, das tabellarische Anzeigen von Daten, das Eingeben und Ändern von Datensätzen bis hin zu grafischen Auswertungen und Charts – die Möglichkeiten sind hier quasi unbegrenzt.
Eine Middleware stellt also nicht nur Daten zur Verfügung, sondern besitzt darüber hinaus auch die Fähigkeit, diese Daten für den Endbenutzer lesbar und optisch ansprechend darzustellen. Meistens bietet eine Middleware zu diesem Zweck ein modulares Framework, Entwicklungsrichtlinien oder in irgendeiner Form standardisierte Bausteine, um diese GUI schnell und unkompliziert je nach Anforderung zu erweitern und anzupassen.
2. Flexibilität nach innen
Im Gegensatz zu einem Web-Service bietet eine Middleware nicht nur nach außen die Möglichkeit, an praktisch jedes System angebunden zu werden, sondern auch in die entgegengesetzte Richtung: Durch interne Prozesse und Verarbeitungsmechanismen, die unter Punkt 3. erklärt werden, ermöglicht eine Middleware die Kommunikation mit unterschiedlichsten Host-Systemen und Datenbanken.
Das bedeutet, dass Daten nicht länger in einer bestimmten Datenbank sein müssen, um über die API für den Client zur Verfügung zu stehen, sondern je nach Anfrage aus verschiedenen Systemen bezogen werden können. Ein Online-Händler fragt beispielsweise den aktuellen Lagerbestand seiner Artikel ab, welche die Middleware ihrerseits vom Shop-System bezieht. Unterschreitet ein Artikel nun den festgelegten Mindestbestand, hat der Benutzer die möglichkeit, an seinen Lieferanten mit nur einem Mausklick eine Bestellung zu senden – dazu greift die Middleware auf den Mailserver oder das Postfach des Benutzers zu und versendet anhand der Daten des betroffenen Artikels eine E-Mail.
Die Middleware greift also auf verschiedenste Datenquellen gleichzeitig zu, kann diese untereinander vergleichen oder konsolidieren und Datenbank- oder Serverübergreifend verarbeiten. Es wird also im wahrsten Sinne des Wortes eine “runde Sache” aus einem einfachen Dienst – denn eine Middleware kommuniziert in alle Richtungen und agiert als Zentrum einer ansonsten entkoppelten Softwarelandschaft.
3. Automatisierung und Konsolidierung
Wie bereits erwähnt verfügt eine Middleware nicht selten über ein internes System zur Verarbeitung und Aufbereitung von Daten. Eine oder mehrere eigene Datenbanken dienen ihr dabei als Zwischenspeicher sowie als Ablage für Zuordnungsinformationen, Einstellungen, Log-Daten und allem, was sonst so zur “Verwaltung” der Daten nötig ist.
Mit der Anbindung an verschiedene Host-Systeme, Server und Datenbanken kommen natürlich auch neue Anforderungen und Möglichkeiten. Vor allem der Austausch und die Konsolidierung von Daten in verschiedenen Systemen ist eine nicht zu unterschätzende logistische Herausforderung, insbesondere dann, wenn diese Systeme und deren Anwender voneinander abhängig sind und sich deren Geschäftsprozesse gegenseitig beeinflussen. Die Middleware dient dann als universelle Schnittstelle und beinhaltet die nötige Logik, um diese Daten in einen gemeinsamen Kontext zu bringen.
Um das alles im Hintergrund und vor Allem ohne unnötige Beeinträchtigung des Workflows für den Benutzer zu vollziehen, werden diese oftmals sehr komplexen Rechenabläufe in der Regel automatisiert ausgeführt. Das “Herzstück” dieser Automatisierung stellt ein so genanntes Cron-System dar, welches bei vielen Betriebssystemen bereits vorhanden ist und in regelmäßigen Abständen bestimmte Aufgaben startet – die CronJobs. Eine Middleware setzt häufig auf diesem System auf und nutzt es sozusagen als “Uhrwerk”. Das ermöglicht das Ausführen von zeitgesteuerten Prozessen, welche etwa anhand vorher festgelegter Kriterien bestimmte Daten verarbeiten, CSV-Dateien einlesen oder schreiben, E-Mails versenden oder auch auf einen externen Dienst zugreifen, um Daten auszutauschen. Da das Cron-System typischerweise direkt auf dem Host-Server der Middleware läuft, ist es für den Anwender nicht ohne Weiteres bemerkbar und beeinträchtigt ihn nicht in seiner Arbeitsweise. Extrem rechenintensive Prozesse werden zudem meist zeitlich so gelegt, dass sie zu möglichst ruhigen Phasen des Geschäftsbetriebes ausgeführt werden – beispielsweise mitten in der Nacht.
Im Falle des Beispiels aus 2. bedeutet das also, dass die Middleware unabhängig vom Benutzer von Zeit zu Zeit den Mindestbestand aller Artikel im Shop überprüft und die Bestellungen an den entsprechenden Lieferanten selbstständig versendet. Der Shop-Betreiber muss sich um diesen Vorgang nicht mehr kümmern und kann sich auf das Tagesgeschäft konzentrieren.
Die vermeidbaren Nachteile
So nützlich eine Middleware auch ist, so anfällig ist sie auch für die typischen Nebenwirkungen. Denn mit der Flexibilität und den individuellen Anpassungen für verschiedene Anwender steigt auch die Datenmenge und somit die Last für den Server, die Suche nach der sprichwörtlichen Nadel im Heuhaufen wird umso aufwändiger, je größer der Heuhaufen wächst. Deshalb wird der Begriff Middleware häufig mit Schwerfälligkeit oder schlechter Performance in Verbindung gebracht.
Das stimmt nur bedingt – “Big Data” gehört heute ohnehin schon zum Standard-Vokabular eines jeden Softwareentwicklers, der mit Datenbanken zu tun hat. Große Datenmengen verursachen lange Ladezeiten, wenn beim Entwickeln der Datenstruktur so getan wird, als hätte man keine großen Datenmengen. Und je länger man diese Problematik ignoriert, desto schwerwiegender wird sie.
Deshalb ist es bei der Entwicklung und Konzeption einer Middleware besonders wichtig, gleich von Anfang an mit erheblichen Datenmengen zu kalkulieren und dementsprechend sowohl die Datenbank als auch die Zugriffe darauf zu optimieren. Das kann beispielsweise durch das Setzen von Indizes, das Abtrennen oder Aufteilen bestimmter Daten, Summentabellen, Caching und Abkoppeln von rechenintensiven Prozessen (siehe CronJobs) passieren. Geschieht das nicht, oder nicht richtig, so kommt es früher oder später zu Performance-Problemen, welche eigentlich leicht vermeidbar wären – Techniken dazu gibt es bereits genug.
Fazit
Eine Middleware bietet entscheidende Vorteile bei der Anbindung mehrerer ansonsten nicht kompatibler Systeme, wenn sie richtig Umgesetzt wird. Vor allem im Bereich der Webanwendungen schießen neue Softwarelösungen wie Pilze aus dem Boden. Jede dieser Lösungen hat in einem gewissen Anwendungsgebiet ihre Daseinsberechtigung und ist oftmals für denjenigen, der sie täglich verwendet, unverzichtbar.
Dieser Umstand macht eine zentrale Verwaltungsstelle für wichtige Daten umso nötiger, weshalb sich sendeffect bereits sehr früh entschlossen hat, die “sendeffect Middleware” zu entwickeln, welche mit jeder Kundenanforderung erweitert werden kann und so die Möglichkeit bietet, nahezu jedes System anzubinden. Die einfache Erweiterbarkeit, die vielfältigen realisierbaren Anwendungsszenarien und die hohe Verfügbarkeit von Daten stellen dabei die wichtigsten Faktoren dar, die diese Entscheidung beeinflussten.
---
Mehr wissenswertes zum Thema E-Mail Marketing finden Sie auf unserem Blog: www.sendeffect.de/blog
---
Ansprechpartner
Sergei Brehm
sendeffect
Schulgasse 5
D-84359 Simbach am Inn
Telefon: +49 (0) 8571 - 97 39 69-9
E-Mail: service@sendeffect.de
https://www.sendeffect.de