Один MaxCode вместо десятка ключей: как PushMeld добавляет уведомления туда, где их не было
Один MaxCode вместо десятка ключей: как PushMeld добавляет уведомления туда, где их не было
Forestil dig en hjemmecomputer, der hver nat laver backup af vigtige filer. Resultatet gemmes i systemloggen: operatationen er gennemført med succes, eller der er opstået en fejl.
Alt fungerer teknisk set. Problemet opstår om morgenen: personen skal selv åbne loggen og tjekke resultatet. Programmet har ingen mobilapp, og der er ikke planlagt at sende notifikationer fra udviklernes side, og ingen vil oprette en separat infrastruktur kun til én funktion.
Med PushMeld kan man tilføje et enkelt forespørgsel til denne proces. Efter backup er færdig, modtager telefonen en besked: backupen er oprettet, eller operationen endte med fejl. Om nødvendigt kan den samme notifikation også modtages via email.
Grundlaget for denne idé er MaxCode — en fælles, beskyttet kode, gennem hvilken PushMeld modtager al nødvendig information for fortsat levering af notifikationen.
Når jeg blev bekendt med projektet, virkede MaxCode som den mest interessante del. Push-notifikationer og email er ikke nyheder. Det, der er vigtigere, er, at den oprindelige program ofte mister styringen af distributionen. Den blot rapporterer til PushMeld om hændelsen, mens resten sker uden for dens rækkevidde.
Jeg vil straks afklare konteksten: PushMeld er en del af MELD®-systemet, og DigiMeld UG er selskabet bag udviklingen.
Kilden kender kun til hændelsen
En almindelig integration af notifikationer bliver hurtigt til en kompleks teknisk opgave. Man skal definere projekt, konfigurere adgang, opbevare nøgler, tage højde for enhedstokens, tilkoble mailafsendelse og håndtere krav fra forskellige mobile platforme.
PushMeld flytter alt dette fra den oprindelige system til et separat, styret kredsløb.
Backup-appen ved kun, om operationen er vellykket eller fejlet. Den sender MaxCode, overskrift og tekst til meddelelsen.
Den behøver ikke vide:
hvor mange enheder der er tilsluttet projektet;
hvilken telefon der er aktiv;
gennem hvilken udbyder push skal sendes;
om email-levering er aktiveret;
om brugeren har anskaffet en ny smartphone;
om den gamle tablet er deaktiværet;
hvem der skal modtage den specifikke notifikation.
Alt dette bestemmes direkte inden for PushMeld.
Efter min mening ligger den centrale arkitektoniske idé i, at MaxCode overfører styringen af notifikationer fra programmet, hvor hændelsen opstår, til det system, der håndterer distributionen.
Én MaxCode i stedet for en række nøgler
Ved tilslutning af eksterne services er det normalt nødvendigt at håndtere flere entiteter. Adskilt bruges projekt-ID, adgangsnøgle, eventuelle hemmeligheder, enhedstokens og konfigurationer for specifikke udbydere.
MaxCode samler alt nødvendigt for afsendelse i en beskyttet kode.
Hvert projekt får sin egen MaxCode, hvor projektidentifikation, tilladelse til at sende og data til PushMeld tilpasses det aktuelle behov.
Den af senderen krævede system behøver ikke længere at gemme:
projekt-ID;
API-nøgle og ekstra hemmelighed;
tokens for tilsluttede enheder;
indsatsparametre for hver modtager;
differente push-udbydernøgler;
separate indstillinger for push og email.
Man tilføjer bare en enkelt MaxCode til programmet, hjemmesiden eller scriptet. Når den modtages med meddelelsen, identificerer PushMeld selv projektet, kontrollerer forespørgslen, finder tilsluttede enheder og vælger de tilgængelige kanaler.
Derfor skal MaxCode ikke ses som endnu en nøgle, men som en erstatning for den samlede pakke af adskilte nøgler, tokens og identifikatorer i ét enkelt kodeord.
Notifikation derfra, hvor det ikke er forudset
MaxCode kan anvendes i systemer, der selv kan foretage HTTP-forespørgsler, enten direkte eller via en lille hjælpeproces.
Eksempelvis kan PushMeld melde, når:
den hjemmebaserede server ikke svarer;
backup er fuldført eller fejlet;
en brugerdefineret script har gjort en langvarig opgave;
3D-printeren er færdig med udskrivningen;
en sensor har registreret en utæthed;
døren er blevet åbnet, eller alarmsystemet er aktiveret;
informationen er offentliggjort på hjemmesiden;
prisen på et produkt er ændret;
der er ledig plads til lagring;
den gamle software har færdiggjort behandling af en stor fil;
en lille netbutik har modtaget en ny ordre.
Hver af disse kilder behøver måske ikke en egen app. Nogle enheder er kun i stand til at anmode om et bestemt adresse, andre kan køre brugerdefinerede kommandoer, og nogle kan suppleres med simple automatiseringsscenarier.
Dette er alt, der kræves for at sende hændelsen til PushMeld.
Kilden forbliver ikke et selvstændigt notifikationssystem, men indkapsler blot hændelsen og sender MaxCode. Resten — modtagere, enheder, kanaler og tekniske ruter — håndteres af PushMeld.
Ikke kun push, men også email
Navnet PushMeld forbindes ofte med notifikationer på telefoner, men projektet har flere muligheder.
Til levering kan anvendes push, email eller begge dele, afhængigt af projektets indstillinger og tilgængelige funktioner.
Eksempelvis kan meddelelsen om en vellykket backup vises direkte på telefonen, mens en kritisk fejl kan sendes som e-mail.
Den oprindelige program bruger i begge tilfælde den samme anmodning med MaxCode. Der skal ikke konfigureres separate mailservere eller gemmes indstillinger til disse.
Beslutningen om leveringskanal træffes internt i PushMeld. Hvis brugeren senere tilføjer email til et eksisterende projekt, skal backup-scriptet ikke ændres.
Her anvendes email ikke som en almindelig masseudsendelse, men som et ekstra middel til at informere om hændelsen, der er modtaget fra det tilsluttede projekt.
Én projekt — én kilde til hændelser
Projekter kan adskille notifikationer baseret på formål.
En almindelig bruger kan oprette, for eksempel:
HomeServer— tilstand for hjemmecomputeren;Backups— resultater af backup;SmartHome— sensorer og hjemmeautomatisering;PriceMonitor— ændringer i priser;Website— nye henvendelser via hjemmesiden.
Hvert projekt får sin egen MaxCode. Dermed adskilles eksempelvis hjemmeautomatisering fra prismatchning og backup.
I app’en kan man straks se, hvor meddelelsen kommer fra, og hvilken opgave den er relateret til.
Sådanne opdelinger er især nyttige, når antallet af kilder stiger. I stedet for én samlet strøm får man flere uafhængige kanaler, hvor hver kan konfigureres separat.
Ny telefon behøver ingen ændring af programmet
Et almindeligt push-token er knyttet til en bestemt installation af appen på enheden.
Har man to telefoner og en tablet, er der allerede flere tokens. Ved geninstallation eller udskiftning af enhed kan tokenet ændre sig eller slutte med at virke.
MaxCode ligger højere end dette niveau. Det er for det projekt, ikke for én enhed.
Brugeren bestemmer selv, hvilke enheder der er tilknyttet projektet, og som skal modtage dets meddelelser. For eksempel kan notifikationer fra hjemmebasen sendes til både telefon og tablet, mens arbejdshjemmesidets hændelser kun sendes til firmatelefonen.
Hvis man køber en ny telefon eller deaktiverer en gammel, fortsætter scriptet med at bruge det samme MaxCode. Den aktuelle liste over modtagere opdateres inden for PushMeld.
Det samme gælder for tilføjelse af email eller ændring af andre leveringsindstillinger.
Derfor er MaxCode ikke blot en måde at forkorte antallet af nøgler. Det skaber en grænse mellem hændelsen og dens videre vej. Alt efter denne grænse kan man ændre modtagere, enheder eller kanal uden at ændre i den oprindelige kilde.
Gratis for almindelige opgaver
Infrastrukturelle systemer beskrives ofte via erhvervsplatforme, serverkommandoer og store datamængder. Derfor kan det virke, som om PushMeld er designet kun til professionelle udviklere og virksomheder.
Men man kan starte med en helt simpel hjemmeopgave.
Selve app'en er gratis. MaxCodes med basisfunktioner fungerer også uden betaling, inden for gratis begrænsninger. Man kan oprette et projekt, tilslutte enheden og modtage notifikationer fra egen server, hjemmeside, script eller hjemmeautomatiseringssystem.
Det er ikke en midlertidig demo, der stopper efter at have prøvet produktet af. For daglige scenarier kan de gratis funktioner være tilstrækkelige.
Betalingsplaner bliver relevante, hvis man får flere forespørgsler, ønsker yderligere funktioner, eller systemet bruges i større skala.
Én princip per person og virksomhed
MaxCode-mekanismen ændrer ikke sig afhængigt af opgavens størrelse.
En person får besked, når backup er gennemført, en lille værksted får info om, at 3D-printeren er færdig, en onlinebutik modtager en ny ordre, og IT-teamet får en fejlmeddelelse fra serveren.
Omfanget og antallet af projekter kan variere, men princippet er altid det samme.
Forestil dig en organisation med tre kilder til hændelser:
Orders— nye ordrer;Payments— indbetalinger og returneringer;ServerStatus— tekniske fejl.
Hvert projekt får sin egen MaxCode, og der konfigureres egne enheder. Ordrer kan gå til ejeren og salgslederen, økonomihændelser til den ansvarlige medarbejder, og fejl til servervedligeholdelsesfolk.
Systemet sender i alle tilfælde det relevante indhold, sammen med den korrekte MaxCode.
Hvis medarbejdere, enheder eller leveringsmetoder ændres, behøver de oprindelige systemer ikke at ændre sig. styringen forbliver inde i PushMeld.
APNs, FCM og HMS forbliver uden for programmet
Til push-levering på forskellige enheder kan anvendes APNs, FCM eller HMS. Hver udbyder har sine egne regler, tokens og tekniske specifikationer.
Disse forskelle skal normalt tages højde for ved udvikling af afsendersystemet. Med PushMeld er de dog begrænset til MaxCode, som er uden for den.
Hjemmebasen, hjemmeside eller script bestemmer ikke, hvilken telefon modtageren bruger, eller gennem hvilken infrastruktur beskeden skal sendes. Programmet sender blot én anmodning, og PushMeld vælger den nødvendige route.
MaxCode erstatter ikke de specifikke infrastrukturer fra Apple, Google eller Huawei men skaber et fælles indgangspunkt foran dem.
Det betyder, at det oprindelige system ikke behøver at ændres, hvis enheden skifter. I dag kan beskeden sendes via FCM, i morgen via APNs, og senere føjes endnu en telefon eller email til projektet. Det kræver ikke, at programmet ændres.
MaxCode og almindelig API-nøgle er ikke det samme
En almindelig API-nøgle tillader typisk blot adgang til en tjeneste. Når nøgle er godkendt, skal systemet stadig vide, hvilket projekt, hvilke modtagere og hvilken leveringstype, der skal anvendes.
MaxCode kombinerer al denne kontekst i én kode.
Det gør det muligt for PushMeld at genkende projektet, verificere forespørgslen og anvende de aktuelle indstillinger. Den eksterne app sender MaxCode og hændelsesindhold uden yderligere at styre ruten.
En praktisk forskel kan opsummeres kort: En API-nøgle giver adgang til en funktion, mens MaxCode samtidigt bestemmer, i hvilken sammenhæng denne funktion skal udføres.
Notifikation som tilknyttet funktion
Efter at have lært PushMeld at kende, ville jeg ikke blot kalde det en app for push-notifikationer.
Det er mere præcist at sige, at det er en måde at tilføje notifikationer der, hvor de tidligere ikke var, og samtidig styre dem uafhængigt af den oprindelige programinstallation.
Kilden kan være en hjemmebaser, en sensor, en gammel app, en webshop, et script eller et internt system i virksomheden. Hvis den kan foretage HTTP-forespørgsler selv eller via en lille adapter, kan hændelsen sendes til PushMeld.
MaxCode herefter træder i kraft som den grænse, der adskiller hændelsen og dens levering. På den ene side er programmet, der rapporterer, hvad der er sket. På den anden side er PushMeld, som identificerer projektet, enheder, kanaler og den tekniske vej.
Den vigtigste funktion ved MaxCode er ikke kun erstatning af mange nøgler med én. Det flytter håndteringen af notifikationer ud af den oprindelige kilde.
Telefonen kan udskiftes, email kan tilføjes, et gammelt device kan deaktiveres, og leveringsruten kan ændres. Programmet vil fortsat bare rapportere hændelsen, som det skal.
\n \",\n \"seo_title\": \"MaxCode i stedet for mange nøgler: hvordan PushMeld styrer notifikationer\",\n \"seo_description\": \"PushMeld bruger MaxCode til at forenkle levering af notifikationer til enheder og email, adskiller styringen fra de oprindelige systemer og udvider mulighederne.\",\n \"og_title\": \"MaxCode i stedet for mange nøgler: hvordan PushMeld styrer notifikationer\",\n \"og_description\": \"PushMeld anvender MaxCode for at simplificere distributionen af notifikationer til enheder og email, uafhængigt af de kilder, hvorfra hændelser opstår.\"\n}"}