Один MaxCode вместо десятка ключей: как PushMeld добавляет уведомления туда, где их не было
Один MaxCode вместо десятка ключей: как PushMeld добавляет уведомления туда, где их не было
Stellen wir uns einen Heimcomputer vor, der jede Nacht eine Sicherung wichtiger Dateien erstellt. Das Ergebnis wird im Systemprotokoll gespeichert: Operation erfolgreich abgeschlossen oder Fehler aufgetreten.
Technisch funktioniert alles. Das Problem entsteht am Morgen: Der Benutzer muss das Protokoll manuell öffnen und das Ergebnis überprüfen. Die Anwendung verfügt nicht über eine mobile App, Benachrichtigungen sind nicht vorgesehen, und eine separate Infrastruktur nur für diese Funktion zu schaffen, ist unwirtschaftlich.
Mit PushMeld kann man eine einfache Anfrage in diesen Prozess integrieren. Nach Abschluss der Sicherung erhält der Nutzer eine Nachricht auf das Telefon: Die Kopie wurde erstellt oder der Vorgang endete mit einem Fehler. Bei Bedarf kann dieselbe Benachrichtigung auch per E-Mail verschickt werden.
Der Kern dieser Idee ist MaxCode — ein einheitlicher, geschützter Code, durch den PushMeld alle Informationen erhält, die notwendig sind, um die Benachrichtigung weiterzuleiten.
Als ich das Projekt kennenlernte, erschien mir gerade MaxCode als der interessanteste Teil. Push-Benachrichtigungen und E-Mails sind längst nichts Neues mehr. Viel wichtiger ist, dass die Originalsoftware deren Zustellung nicht mehr steuert. Sie informiert nur noch PushMeld über das Ereignis, während alles Weitere außerhalb stattfindet.
Zunächst möchte ich den Kontext klarmachen: PushMeld gehört zum System MELD®, und DigiMeld UG ist das Unternehmen, das dieses weiterentwickelt.
Der Ausgangspunkt kennt nur das Ereignis
Eine gewöhnliche Integration von Benachrichtigungen wird schnell durch technische Details kompliziert. Es müssen Projekt, Zugriffsrechte, Schlüssel, Gerätetoken, E-Mail-Versand und die Anforderungen verschiedener mobiler Plattformen berücksichtigt werden.
PushMeld verschiebt all dies aus dem ursprünglichen System in einen separaten verwalteten Bereich.
Das Sicherungsprogramm kennt nur eines: Ob der Vorgang erfolgreich war oder mit einem Fehler endete. Es übermittelt MaxCode, Betreff und Nachrichtentext.
Es ist nicht notwendig zu wissen:
Wie viele Geräte mit dem Projekt verbunden sind;
Welches Telefon aktiv ist;
Welcher Provider für den Push zuständig ist;
Ob E-Mail-Versand aktiviert ist;
Ob ein Nutzer ein neues Smartphone hat;
Ob ein altes Tablet deaktiviert wurde;
Wer die jeweilige Benachrichtigung erhalten soll.
All dies wird bereits innerhalb von PushMeld geregelt.
Meiner Meinung nach liegt hier die zentrale architektonische Idee des Projekts: MaxCode verschiebt die Steuerung der Benachrichtigungen vom Programm, in dem das Ereignis auftritt, in das System, das die Zustellung übernimmt.
Ein MaxCode statt eines Schlüsselsets
In der Regel muss man bei der Anbindung eines externen Dienstes mit mehreren Entitäten arbeiten. Es werden Projekt-ID, Zugangsschlüssel, ggf. Geheimnisse, Gerätetoken und spezifische Einstellungen verschiedener Anbieter genutzt.
MaxCode vereint alles Notwendige in einem geschützten Code.
Für jedes Projekt wird ein eigener MaxCode generiert. Dieser verbindet die Projekt-ID, die Berechtigung zur Zustellung und die Daten, die PushMeld für die aktuelle Delivery-Konfiguration benötigt.
Das sendende System muss nicht separat speichern:
Projekt-ID;
API-Schlüssel und weiteres Geheimnis;
Verbundene Gerätetoken;
Empfängerspezifische Parameter;
Schlüssel verschiedener Push-Provider;
Getrennte Einstellungen für Push und E-Mail.
Ein MaxCode wird dem Programm, der Website oder dem Skript hinzugefügt. Sobald es diesen zusammen mit der Nachricht erhält, erkennt PushMeld automatisch das Projekt, überprüft die Anfrage, findet die verbundenen Geräte und wählt die verfügbaren Kanäle.
Daher ist MaxCode nicht einfach ein weiterer Schlüssel, sondern soll die gesamte übliche Bindung aus verstreuten Schlüsseln, Tokens und IDs durch einen einzigen Code ersetzen.
Benachrichtigung, wo sie vorher nicht vorgesehen war
MaxCode kann in jedem System genutzt werden, das selbstständig HTTP-Anfragen ausführen kann — entweder direkt oder über einen kleinen Helferscript.
Zum Beispiel kann PushMeld benachrichtigen, wenn:
Der Heimserver nicht mehr antwortet;
Die Sicherung abgeschlossen wurde oder einen Fehler hatte;
Ein eigenes Skript eine längere Aufgabe beendet hat;
Der 3D-Drucker mit dem Drucken fertig ist;
Ein Sensor eine Leckage detektiert hat;
Eine Tür geöffnet wurde oder die Alarmanlage auslöste;
Auf der Website wichtige Informationen erschienen;
Der Preis eines Produkts sich geändert hat;
Platz für den Schreibvorgang frei wurde;
Ein altes Programm eine große Datei verarbeitet hat;
Ein kleiner Online-Shop eine neue Bestellung erhalten hat.
Diese Quellen benötigen kein eigenes App. Manche Geräte können nur eine festgelegte Adresse ansprechen, andere erlauben das Ausführen eines benutzerdefinierten Befehls, wieder andere lassen sich um ein kurzes Automatisierungsskript ergänzen.
Das reicht aus, um das Ereignis in PushMeld zu übertragen.
Die Quelle wird dadurch keine eigenständige Benachrichtigungsplattform. Sie dokumentiert nur, was passiert ist, und schickt eine Nachricht mit MaxCode. Alles andere — Empfänger, Geräte, Kanäle und technischer Weg — bleibt bei PushMeld.
Nicht nur Push, sondern auch E-Mail
Der Name PushMeld wird vor allem mit Benachrichtigungen auf Smartphones assoziiert, doch die Projektmöglichkeiten gehen weiter.
Für die Zustellung können Push, E-Mail oder beide Kanäle genutzt werden — je nach Projekt- und Ausstattungskonfiguration.
Zum Beispiel reicht eine Benachrichtigung über den erfolgreichen Backup auf dem Telefon aus. Bei kritischen Fehlern kann zusätzlich eine E-Mail verschickt werden.
Das ursprüngliche Programm sendet in beiden Fällen dieselbe Anfrage mit MaxCode. Es muss keinen eigenen Mailserver konfigurieren, keine Einstellungen speichern oder ein zweites Szenario erstellen.
Die Entscheidung über die Zustellkanäle trifft PushMeld. Wenn der Nutzer später eine E-Mail zu einem bestehenden Projekt hinzufügt, muss das Backup-Programm nicht angepasst werden.
Dabei wird E-Mail hier nicht als Massenmail eingesetzt, sondern nur als zusätzlicher Weg, um über das Ereignis zu informieren, das vom verbundenen Projekt stammt.
Ein Projekt — eine Ereignisquelle
Projekte ermöglichen es, Benachrichtigungen nach ihrem Zweck zu trennen.
Ein normaler Nutzer kann beispielsweise erstellen:
HomeServer— Status des Heimservers;Backups— Backup-Ergebnisse;SmartHome— Sensoren und Hausautomation;PriceMonitor— Preisänderungen;Website— neue Anfragen vom persönlichen Webauftritt.
Jedes Projekt erhält einen eigenen MaxCode. Damit bleibt die Hausautomation unabhängig vom Website-Code, und die Preismonitoring-Daten vermischen sich nicht mit Backup-Daten.
In der Anwendung ist sofort erkennbar, woher die Nachricht stammt und zu welchem Zweck sie dient.
Dieses Trennen ist vor allem bei zunehmender Anzahl von Quellen hilfreich. Statt eines einzigen allgemeinen Flusses erhält man mehrere unabhängige Kanäle, die eigene Einstellungen für die Zustellung haben können.
Neues Telefon erfordert keine Programmänderung
Ein normales Push-Token ist an eine konkrete App-Installation auf einem bestimmten Gerät gebunden.
Hat jemand zwei Telefone und ein Tablet, sind das mehrere Tokens. Bei Neuinstallation oder Gerätewechsel kann sich ein Token ändern oder nicht mehr funktionieren.
MaxCode liegt darüber. Es gehört zum Projekt, nicht zu einem einzelnen Telefon.
Der Nutzer entscheidet selbst, welche Geräte mit dem Projekt verbunden sind und Nachrichten erhalten sollen. So können z.B. Benachrichtigungen vom Heimserver an das persönliche Telefon und Tablet gehen, während Ereignisse auf der Arbeitswebsite nur an das dienstliche Smartphone gesendet werden.
Wenn jemand ein neues Telefon kauft oder ein altes deaktiviert, verwendet das ursprüngliche Script weiterhin den gleichen MaxCode. Die aktuelle Empfängerliste wird innerhalb von PushMeld aktualisiert.
Das gilt auch für das Hinzufügen von E-Mail oder die Änderung anderer Zustellparameter.
Genau deshalb ist MaxCode mehr als nur eine Reduktion der Schlüsselanzahl. Es schiebt eine Grenze zwischen Ereignis und dessen Weiterleitung. Alles, was nach dieser Grenze liegt, kann ohne Eingriffe in die Quellsoftware geändert werden.
Kostenlos für Standardaufgaben
Infrastrukturprodukte werden oft im Kontext von Firmen, Server-Befehlen und großen Datenmengen beschrieben. Daher könnte man meinen, PushMeld sei nur für professionelle Entwickler und Unternehmen gedacht.
In der Praxis lässt es sich mit einer einfachen Heimaufgabe starten.
Die App selbst ist kostenlos. Die wichtigsten Funktionen von MaxCode arbeiten ebenfalls kostenlos innerhalb der verfügbaren Limits. Der Nutzer kann ein Projekt erstellen, Geräte verbinden und Benachrichtigungen vom Server, der Website, dem Skript oder der Hausautomation erhalten.
Dies ist keine zeitlich begrenzte Demo, die nach ersten Erfahrungen endet. Für den Alltag sind die kostenlosen Möglichkeiten meist ausreichend.
Kostentarife sind sinnvoll, wenn die Anfragezahl steigt, zusätzliche Funktionen benötigt werden oder das System größer genutzt wird.
Ein Prinzip für Privatpersonen und Unternehmen
Die MaxCode-Funktion ändert sich nicht, egal wie groß die Aufgabe ist.
Ein Nutzer erhält eine Nachricht über den Abschluss eines Backups. Eine kleine Werkstatt erfährt, dass ein 3D-Drucker eine längere Arbeit beendet hat. Ein Onlineshop bekommt eine neue Bestellung. Das IT-Team wird bei Serverproblemen benachrichtigt.
Es unterscheiden sich nur Umfang und Anzahl der Projekte, das Prinzip bleibt dasselbe.
Stellen wir uns eine Organisation mit drei Quellen vor:
Orders— neue Bestellungen;Payments— Zahlungen und Rückerstattungen;ServerStatus— technische Fehler.
Für jede Quelle wird ein eigener MaxCode erstellt, und die Geräte werden entsprechend eingerichtet. Bestellungen gehen an Inhaber und Manager, finanzielle Vorgänge an das Buchhaltungspersonal, technische Fehler an den Server-Administrator.
Das System der Organisation sendet in jedem Fall nur den Ereignisinhalt zusammen mit dem passenden MaxCode.
Wenn Mitarbeitende wechseln, Geräte oder Zustellwege sich ändern, müssen die Ursprungssysteme nicht angepasst werden. Die Steuerung verbleibt bei PushMeld.
APNs, FCM und HMS bleiben außerhalb des Programms
Für Push-Benachrichtigungen auf verschiedenen Geräten können APNs, FCM oder HMS genutzt werden. Jeder Anbieter hat eigene Regeln, Tokens und technische Eigenheiten.
Meistens müssen diese Unterschiede bei der Entwicklung der sendenden Systeme berücksichtigt werden. Bei PushMeld bleiben sie außerhalb von MaxCode.
Heimserver, Website oder Skript bestimmen nicht, welcher Telefonhersteller beim Empfänger zum Einsatz kommt und durch welche Infrastruktur die Nachricht laufen soll. Sie senden eine Anfrage, und PushMeld wählt den richtigen Weg.
MaxCode ersetzt nicht die Infrastruktur von Apple, Google oder Huawei. Es schafft einen einheitlichen Eingang vor ihnen.
Dadurch muss die ursprüngliche Software nicht mit den Geräten des Nutzers Schritt halten. Heute wird die Nachricht vielleicht via FCM, morgen via APNs verschickt, und später kommt noch ein weiteres Telefon oder eine E-Mail hinzu. Für das Ereignis-Programm ändert sich dadurch nichts.
MaxCode und ein normaler API-Schlüssel sind nicht dasselbe
Ein gewöhnlicher API-Schlüssel erlaubt meist nur den Zugriff auf einen Dienst. Nach der Validierung muss das System trotzdem Projekt, Empfänger und Zustellart separat mitteilen.
MaxCode vereint diesen Kontext in einem einzigen Code.
Es ermöglicht PushMeld, das Projekt zu erkennen, die Anfrage zu prüfen und die aktuellen Einstellungen anzuwenden. Das externe Programm sendet MaxCode und den Ereignisin[zitat], ohne die Weiterleitung zu steuern.
Der praktische Unterschied lässt sich kurz zusammenfassen: Der API-Schlüssel öffnet den Zugriff auf eine Funktion, während MaxCode gleichzeitig den Kontext bestimmt, in dem diese Funktion ausgeführt wird.
Benachrichtigung als integrierbare Funktion
Nach meiner Erfahrung mit PushMeld würde ich es nicht nur als eine App für Push-Benachrichtigungen bezeichnen.
Vielmehr ist es eine Methode, um Benachrichtigungen dahin zu bringen, wo sie vorher nicht waren, und diese unabhängig von der Ursprungssoftware zu steuern.
Der Initiator kann ein Heimserver, Sensor, altes Programm, Online-Shop, eigenes Skript oder internes System sein. Wenn es HTTP-Anfragen selbstständig ausführen kann — direkt oder über einen kleinen Adapter —, kann das Ereignis in PushMeld übertragen werden.
MaxCode setzt dort die Grenze zwischen Ereignis und Zustellung. Auf der einen Seite die Software, die signalisiert, was passiert ist; auf der anderen PushMeld, das Projekt, Geräte, Kanäle und technischen Weg bestimmt.
Die wichtigste Funktion von MaxCode ist deshalb nicht nur, viele Schlüssel durch einen einzigen zu ersetzen. Es verschiebt die Steuerung der Benachrichtigungen außerhalb des ursprünglichen Systems.
Das Telefon kann ersetzt, die E-Mail hinzugefügt, ein altes Gerät abgeschaltet, der Zustellweg geändert werden. Die Software bleibt bei ihrer Kernaufgabe: das Ereignis melden.
\"\n \"seo_title\": \"MaxCode statt vieler Schlüssel: wie PushMeld Benachrichtigungen steuert\",\n \"seo_description\": \"PushMeld verwendet MaxCode, um die Zustellung von Benachrichtigungen zu vereinfachen, indem es die Steuerung von den ursprünglichen Systemen trennt und Erweiterungsmöglichkeiten bietet.\",\n \"og_title\": \"Ein MaxCode statt eines Dutzends von Schlüsseln: Wie PushMeld Benachrichtigungen dorthin bringt, wo sie vorher nicht waren\",\n \"og_description\": \"PushMeld nutzt MaxCode, um die Zustellung von Push- und E-Mail-Benachrichtigungen effizient zu verwalten und die Kontrolle aus den ursprünglichen Systemen zu lösen.\"\n}"}