Latest newsNorsk
Back to feedTeknologiNewsMeld Editorial

Один MaxCode вместо десятка ключей: как PushMeld добавляет уведомления туда, где их не было

Один MaxCode вместо десятка ключей: как PushMeld добавляет уведомления туда, где их не было

{"text": "{\n \"title\": \"Odin MaxCode i stedet for ti nøkler: hvordan PushMeld legger til varsler der det ikke var før\",\n \"slug\": \"odin-maxcode-vmesto-desyatka-klyuchey-kak-pushmeld-dobavlyaet-uvedomleniya-tuda-gde-ih-ne-bylo\",\n \"excerpt\": \"Hvordan MaxCode overfører styringen av push- og e-postvarsler fra nettsteder, servere, skript og enheter til PushMeld.\",\n \"body_markdown\": \"

La oss forestille oss en hjemmedatamaskin som hver natt lager en sikkerhetskopi av viktige filer. Resultatet logges i systemloggen: operasjonen er fullført vellykket eller det har oppstått en feil.

Teknisk fungerer alt som det skal. Problemet oppstår om morgenen: personen må selv åpne loggen og sjekke resultatet. Programmet har ingen mobilapp, varsler sendes ikke av utviklerne, og det er ingen som vil opprette egen infrastruktur bare for én funksjon.

Ved hjelp av PushMeld kan man legge til en enkel forespørsel i denne prosessen. Etter fullført sikkerhetskopiering mottar telefonen en melding: kopien er opprettet eller operasjonen endte med feil. Ved behov kan det samme varslet også mottas på e-post.

Grunnlaget for denne ideen er MaxCode — en samlet, sikker kode gjennom hvilken PushMeld mottar all nødvendig informasjon for videre levering av varselet.

Når jeg ble kjent med prosjektet, var det akkurat MaxCode som virket mest interessant. Push-varsler og e-post er ikke noe nytt. Det viktigste er at den opprinnelige programvaren ikke lenger styrer hvordan varsling skal skje. Den bare informerer PushMeld om hendelsen, og alt annet skjer allerede utenfor den.

La meg først forklare sammenhengen: PushMeld er en del av systemet MELD®, og DigiMeld UG er selskapet som utvikler det.

Kilden vet bare om hendelsen

Vanlig integrasjon av varsler blir raskt komplisert med tekniske detaljer. Man må definere prosjektet, konfigurere tilgang, lagre nøkler, ta hensyn til enhets-token, konfigurere e-postsending og håndtere krav fra ulike mobile plattformer.

PushMeld flytter alt dette fra den opprinnelige systemet til en separat styrt sirkel.

Backup-programvaren vet bare én ting: operasjonen er vellykket eller endte med feil. Den sender MaxCode, samt overskrift og tekst for meldingen.

Den trenger ikke å vite:

  • Hvor mange enheter som er koblet til prosjektet;

  • Hvilken telefon som er aktiv nå;

  • Gjennom hvilken leverandør push skal sendes;

  • Om e-postlevering er aktivert;

  • Om brukeren har fått ny smarttelefon;

  • Om den gamle nettbrettet er deaktivert;

  • Hvem som skal motta en bestemt varsling.

Alt dette oppdages allerede inne i PushMeld.

Etter min mening er dette kjernen i prosjektets arkitektoniske idé: MaxCode overfører varslingstyringen fra programmet der hendelsen inntraff, til systemet som håndterer levering.

Én MaxCode i stedet for mange nøkler

Ved tilkobling av eksterne tjenester må man vanligvis håndtere flere enheter: prosjekt-ID, tilgangsnøkkel, eventuelle hemmeligheter, enhets-tokens og konfigurasjoner for spesifikke leverandører.

MaxCode samler alt nødvendig for utsendelse i én beskyttet kode.

Hvert prosjekt får sin egen MaxCode. Den kobler sammen prosjektidentifikasjon, rett til å sende og data som gjør at PushMeld kan anvende riktig leveringkonfigurasjon.

Avsenderen trenger ikke å lagre separat:

  • prosjekt-ID;

  • API-nøkkel og ekstra hemmelighet;

  • tokens for tilkoblede enheter;

  • parametere for hver mottaker;

  • nøkler for ulike push-leverandører;

  • egne innstillinger for push og e-post.

Man legger bare én MaxCode til programmet, nettstedet eller skriptet. Når den mottar den sammen med meldingen, identifiserer PushMeld prosjektet, verifiserer forespørselen, finner tilkoblede enheter og velger tilgjengelige kanaler.

Derfor bør man ikke oppfatte MaxCode som en enda en nøkkel. Dens formål er å erstatte den tradisjonelle samlingen av løse nøkler, tokens og identifikatorer med én kode.

Varsling der det ikke er planlagt

MaxCode kan brukes i hvilken som helst system som kan utføre HTTP-forespørsler selv, eller via en liten hjelpeskript.

For eksempel kan PushMeld varsle når:

  • hjemmeserveren slutter å svare;

  • en sikkerhetskopi er fullført eller mislykket;

  • egen skript utfører en langvarig oppgave;

  • en 3D-printer er ferdig med utskrift;

  • en sensor oppdager lekkasje;

  • en dør eller alarm åpnes;

  • urnettstedet viser ny informasjon;

  • prisen på et produkt endres;

  • det frigjøres lagringsplass;

  • en eldre programvare er ferdig med å behandle en stor fil;
  • en liten nettbutikk mottar en ny bestilling.

Hver av disse kildene trenger kanskje ikke en egen app. Noen enheter kan kun kontakte et bestemt adresse, andre kan kjøre en brukerdefinert kommando, og noen kan utvides med et lite automatiseringsscript.

Dette er nok til å sende en hendelse til PushMeld.

Kilden forblir dermed ikke en egen varslingstjeneste. Den registrerer bare at noe skjedde og sender en melding med MaxCode. Resten — mottakere, enheter, kanaler og teknisk rute — håndteres av PushMeld.

Ikke bare push, men også e-post

Navnet PushMeld forbindes først og fremst med varsler på telefonen, men prosjektets muligheter stopper ikke der.

Levering kan skje via push, e-post, eller begge kanaler — avhengig av prosjektinnstillingene og tilgjengelige funksjoner.

For eksempel er en melding om vellykket sikkerhetskopi tilstrekkelig å vise på telefonen. En alvorlig feil kan også sendes som e-post.

Den opprinnelige programvaren utfører i begge tilfeller samme forespørsel med MaxCode. Den trenger ikke å konfigurere en egen mailserver, lagre innstillinger eller opprette en sekundær automatiseringsskjerm.

Beslutningen om leveringskanaler tas internt i PushMeld. Hvis brukeren senere legger til e-post til et eksisterende prosjekt, må ikke backup-skriptet endres.

Her brukes e-post som en tilleggsmåte for å rapportere en hendelse, ikke som en massemåling.

Én prosjekt — én kilde til hendelser

Prosjektene kan skille varsler basert på deres formål.

En vanlig bruker kan for eksempel opprette:

  • HomeServer — status for hjemmedatamaskinen;

  • Backups — resultater av sikkerhetskopier;

  • SmartHome — sensorer og automatisering hjemme;

  • PriceMonitor — prisendringer;

  • Website — nye henvendelser på hjemmeside.

Hvert prosjekt får sin egen MaxCode. Dette hindrer at hjemmet automatikk blander seg med prisovervåkning eller sikkerhetskopiering.

Det er lett å se fra hvilken kilde meldingen kom og hvilken oppgave det gjelder.

Slike oppdelinger er spesielt nyttige når antallet kilder øker. I stedet for én samlet flyt får man flere uavhengige kanaler, hver med sine egne leveringsinnstillinger.

Nytt telefon krever ingen endring i programmet

Et vanlig push-token er koblet til en spesifikk app-installasjon på en bestemt enhet.

Hvis brukeren har to telefoner og et nettbrett, er det flere tokens. Ved reinstallasjon eller bytte av enhet kan enkelte tokens endres eller slutte å fungere.

MaxCode ligger over dette nivået. Det er knyttet til prosjektet, ikke til én enkelt telefon.

Brukeren bestemmer selv hvilke enheter som skal motta meldinger i prosjektet. For eksempel kan meldinger fra hjemmedatamaskinen sende til både telefon og nettbrett, mens varsler fra arbeidsnettstedet kun sendes til arbeidsmobilen.

Hvis brukeren skaffer en ny telefon eller deaktiverer en gammel, fortsetter skriptet å bruke samme MaxCode. Den oppdaterte mottakerlisten styres allerede av PushMeld.

Det gjelder også ved adding av e-post eller endringer i øvrige leveringsinnstillinger.

Derfor er MaxCode ikke bare en måte å redusere antall nøkler på. Den skaper en grense mellom hendelsen og dens videre rute. Alt som ligger etter denne grensen kan endres fritt uten å endre opprinnelsessystemet.

Gratis for vanlige oppgaver

Infrastrukturelle produkter beskrives ofte i bedriftskontekster, med serverkommandoer og store mengder data. Det kan derfor virke som PushMeld er ment kun for profesjonelle utviklere og bedrifter.

I praksis kan man starte med en enkel hjemmeoppgave.

Selve appen er gratis. Hovedfunksjonene i MaxCode fungerer også uten betaling innenfor gratisgrenser. Man kan opprette prosjekt, koble til enhet og motta varsler fra server, nettsted, skript eller hjemmealarm.

Dette er ikke en midlertidig demo som slutter å fungere etter å ha blitt kjent med produktet. For daglige behov kan de gratis funksjonene være tilstrekkelige.

Betalingsplaner blir aktuelle når antallet forespørsler øker, ekstra funksjoner kreves, eller systemet skal brukes i større skala.

Én prinsipp for personer og bedrifter

MaxCode-funksjonaliteten endres ikke med størrelsen på oppgaven.

En person får beskjed om ferdigstilt sikkerhetskopi. En liten verksted blir varslet når 3D-printeren er ferdig. En nettbutikk får beskjed om en ny bestilling. Det tekniske teamet mottar en feilvarsling på serveren.

Volum og antall prosjekter varierer, men prinsippet er det samme.

Vi kan tenke oss en organisasjon med tre kilder:

  • Orders — nye bestillinger;

  • Payments — innbetalinger og refusjoner;

  • ServerStatus — tekniske feil.

Hvert prosjekt får sin egen MaxCode, og det konfigureres med sine egne enheter. Bestillinger sendes til eier og leder, økonomihendelser til ansvarlig medarbeider, og serverfeil til teknisk support.

Systemet gjør i alle tilfeller det samme: sender innholdet av hendelsen og MaxCode for riktig prosjekt.

Hvis ansatte, enheter eller leveringsmåter endres, trenger ikke de opprinnelige systemene å oppdateres. Kontroll forblir i PushMeld.

APNs, FCM og HMS forblir utenfor programmet

For levering av push kan APNs, FCM eller HMS brukes. Hver leverandør har sine regler, tokens og tekniske særtrekk.

Dette må vanligvis vurderes ved utvikling av avsendersystemet. Med PushMeld ligger slike forskjeller utenfor MaxCode.

Hjemmeservere, nettsteder eller skript vet ikke hvilken telefon mottakeren bruker, eller gjennom hvilken infrastruktur meldingen skal sendes. De utfører kun en forespørsel, og PushMeld velger den nødvendige ruten.

MaxCode erstatter ikke infrastrukturen til Apple, Google eller Huawei. Den lager en felles inngangsport før den.

Dette gjør at det ikke er nødvendig å endre originalsystemet hver gang en brukers enhet endrer seg. I dag kan meldingen sendes via FCM, i morgen via APNs, og kanskje senere til en ny telefon eller e-post. Systemet som utløste hendelsen forblir uendret.

MaxCode og vanlig API-nøkkel er ikke det samme

En vanlig API-nøkkel tillater oftest bare å få tilgang til tjenesten. Etter validering må systemet fortsatt motta informasjon om prosjekt, mottakere og leveringsmåte.

MaxCode kombinerer dette i én kode.

Den gjør at PushMeld kan gjenkjenne prosjektet, verifisere forespørselen og bruke gjeldende innstillinger. Den eksterne programvaren sender MaxCode og innholdet i hendelsen, uten å styre den videre ruten.

Et praktisk skille er kort: API-nøkkel gir bare tilgang, mens MaxCode samtidig fastslår i hvilken sammenheng funksjonen skal brukes.

Varsel som integrert funksjon

Etter å ha blitt kjent med PushMeld, vil jeg ikke kalle det bare en app for push-varsler.

Det er snarere en måte å legge til varsler der det før ikke fantes, og deretter styre dem uavhengig av opprinnelsessystemet.

Kilden kan være en hjemmedatamaskin, sensor, gammel app, nettbutikk, eget skript eller selskapets interne system. Hvis enheten kan sende HTTP-forespørsler selv eller via en liten adapter, kan hendelsen overføres til PushMeld.

Deretter gjør MaxCode et skille mellom hendelsen og leveringen. På den ene siden er programmet som rapporterer hva som skjedde. På den andre Side står PushMeld, som bestemmer prosjekt, enheter, kanaler og teknisk rute.

Derfor er den viktigste fordelen med MaxCode ikke bare å erstatte mange nøkler med én kode. Den flytter varslingene ut av opprinnelsessystemet.

Telefon kan byttes ut, e-post kan legges til, gamle enheter kan deaktiveres, og leveringsruten kan justeres. Programmet vil fortsette å gjøre det eneste som kreves: rapportere om hendelsen.

\n ,\n \"seo_title\": \"MaxCode i stedet for mange nøkler: hvordan PushMeld styrer varsler\",\n \"seo_description\": \"PushMeld bruker MaxCode for å forenkle levering av varsler til enheter og e-post, ved å skille styringen fra de opprinnelige systemene og utvide funksjonaliteten.\",\n \"og_title\": \"Odin MaxCode i stedet for ti nøkler: hvordan PushMeld legger til varsler der det ikke var før\",\n \"og_description\": \"PushMeld bruker MaxCode for å forenkle levering av varsler til enheter og e-post, ved å skille styringen fra de opprinnelige systemene og utvide funksjonaliteten.\"\n}"}