Latest newsRomână
Back to feedTehnologieNewsMeld Editorial

Odin MaxCode în loc de zeci de chei: cum PushMeld adaugă notificări acolo unde nu existed

Cum MaxCode transferă controlul notificărilor push și email din site-uri, servere, scripturi și dispozitive în PushMeld.

Să presupunem un calculator de acasă care în fiecare noapte face backup fișierelor importante. Rezultatul este înregistrat în jurnalul sistemului: operațiune finalizată cu succes sau a avut loc o eroare.

Din punct de vedere tehnic, totul funcționează. Inconvenientul apare dimineața: utilizatorul trebuie să deschidă manual jurnalul și să verifice rezultatul. Programul nu are o aplicație mobilă, trimiterile de notificări de către dezvoltatori nu sunt prevăzute, iar crearea unei infrastructuri separate doar pentru o funcție nu este rațională.

Prin PushMeld se poate adăuga în astfel de proces o simplă solicitare. După finalizarea backup-ului, pe telefon va ajunge un mesaj: copia a fost creată sau operațiunea s-a încheiat cu eroare. Dacă este nevoie, aceeași notificare poate fi primită și prin email.

Fundamentul acestei idei este MaxCode — un cod unificat și sigur, prin care PushMeld primește toate informațiile necesare pentru livrarea ulterioară a notificării.

Când am aflat despre proiect, MaxCode mi s-a părut cea mai interesantă componentă. Notificările push și email nu mai sunt ceva nou. Mult mai important este faptul că programul sursă încetează să controleze livrarea acestora; el doar semnalează evenimentul, iar totul se întâmplă în afara sa.

Voi menționa imediat contextul: PushMeld face parte din sistemul MELD®, iar DigiMeld UG este compania care îl dezvoltă.

Sursa cunoaște doar despre eveniment

Integrarea obișnuită a notificărilor devine rapid complicată din punct de vedere tehnic. Trebuie definit proiectul, configurat accesul, stocate cheile, gestionate tokenurile dispozitivelor, integrate trimiterea emailurilor și ținut pasul cu cerințele diferitelor platforme mobile.

PushMeld transferă toate aceste aspecte din sistemul sursă într-un contur gestionabil separat.

Programul de backup cunoaște doar un lucru: dacă operațiunea s-a terminat cu succes sau s-a încheiat cu eroare. El transmit MaxCode, titlul și textul mesajului.

Nu trebuie să știe:

  • câte dispozitive sunt conectate la proiect;

  • care telefon este activ;

  • prin ce provider trebuie să treacă push-ul;

  • dacă este activă livrarea pe email;

  • dacă utilizatorul are un telefon nou;

  • dacă a fost dezactivată o tabletă veche;

  • cine trebuie să primească anumite notificări.

Toate acestea sunt gestionate deja în interiorul PushMeld.

După părerea mea, aceasta este ideea principală a arhitecturii proiectului: MaxCode transferă controlul notificărilor din programul sursă, unde a avut loc evenimentul, într-un sistem care se ocupă de livrare.

Un MaxCode în loc de multiple chei

De obicei, pentru a conecta un serviciu extern, trebuie să lucrezi cu mai multe entități. Se folosește un identificator de proiect, o cheie de acces, se pot necesita secrete, tokenuri pentru dispozitive și setări specifice providerilor.

MaxCode combină tot ceea ce este necesar pentru trimitere într-un cod sigur unificat.

Fiecare proiect are propriul MaxCode. În acesta sunt combinate identificarea proiectului, dreptul de a trimite și datele care permit PushMeld să aplice configurația corectă de livrare.

Sistemul de trimitere nu trebuie să stocheze separat:

  • identificatorul proiectului;

  • API-ul și un secret suplimentar;

  • tokenurile dispozitivelor conectate;

  • parametrii fiecărui destinatar;

  • cheile diferiților provideri de push;

  • setări separate pentru push și email.

Se adaugă un singur MaxCode în program, site sau script. După ce îl primește împreună cu mesajul, PushMeld identifică automat proiectul, verifică solicitarea, găsește dispozitivele conectate și selectează canalele disponibile.

Așadar, MaxCode nu trebuie perceput ca încă o cheie adăugată celor existente. Scopul lui este să înlocuiască tot ansamblul de chei, tokenuri și identificatori disjuncți cu un singur cod.

Un mesaj de acolo unde nu era prevăzut

MaxCode poate fi folosit în orice sistem capabil să execute o solicitare HTTP singur sau cu un script auxiliar mic.

De exemplu, PushMeld poate trimite notificări când:

  • serverul de acasă nu mai răspunde;

  • backup-ul s-a încheiat sau a avut eroare;

  • scriptul propriu a finalizat o sarcină lungă;

  • 3D printerul a terminat printing-ul;

  • senzorul a detectat o scurgere;

  • ușa a fost deschisă sau alarma s-a activat;

  • pe site a apărut informație nouă;

  • prețul unui produs s-a modificat;

  • s-a eliberat spațiu pentru scriere;

  • vechiul program a terminat procesarea unui fișier mare;

  • un magazin mic a primit o nouă comandă.

Fiecare dintre aceste surse poate să nu aibă propria aplicație. Unele dispozitive pot doar să contacteze un anumit adresă, altele pot fi automate și pot rula comenzi personalizate.

Acest lucru este suficient pentru a transmite evenimentul în PushMeld.

Sursa nu devine un serviciu de notificări independent; ea doar înregistrează evenimentul și trimite mesaj cu MaxCode. Toate celelalte — destinatarii, dispozitivele, canalele și ruta tehnică — rămân în administrarea PushMeld.

Nu doar push, ci și email

Numele PushMeld este în primul rând asociat cu notificările pe telefon, dar posibilitățile proiectului nu se limitează la acestea.

Pentru livrare pot fi folosite canale push, email sau ambele — în funcție de setările proiectului și posibilitățile disponibile.

De exemplu, notificarea despre backup-ul reușit poate fi afișată pe telefon, pe când o eroare serioasă poate fi trimisă și pe email.

Programul sursă realizează aceste solicitări în ambele cazuri cu același MaxCode. Nu trebuie să configureze separat serverul de email, setările lui sau să creeze un scenariu suplimentar.

Decizia privind canalele de livrare se face în interiorul PushMeld. Dacă ulterior, utilizatorul adaugă email la un proiect deja existent, programul de backup nu trebuie modificat.

De asemenea, emailul nu este folosit aici pentru o trimitere masivă, ci ca un supliment pentru a semnala evenimentul provenit din proiectul conectat.

Un proiect — o singură sursă de evenimente

Proiectele permit separarea notificărilor în funcție de scopul lor.

Un utilizator obișnuit poate crea, de exemplu:

  • HomeServer — starea serverului de acasă;

  • Backups — rezultatele backup-urilor;

  • SmartHome — senzori și automatizare casnică;

  • PriceMonitor — modificări de preț;

  • Website — noi solicitări de pe site-ul personal.

Fiecare proiect primește propriul MaxCode. Astfel, automatizarea casei nu folosește codul site-ului, iar monitorizarea prețurilor nu se amestecă cu backup-urile.

În aplicație, imediat se înțelege de unde provine mesajul și la ce sarcină se referă.

Acest separare devine foarte util atunci când numărul de surse crește. În loc de un flux comun, utilizatorul are mai multe canale independente, pentru fiecare fiind setate propriile configurații de livrare.

Un telefon nou nu necesită schimbări în program

Un token push obișnuit este asociat cu o anumită instalare de aplicație pe un anumit dispozitiv.

Dacă utilizatorul are două telefoane și o tabletă, acestea devin mai multe tokenuri. La reinstalarea aplicației sau în cazul în care dispozitivul este schimbat, tokenul se poate altera sau poate înceta să funcționeze.

MaxCode este plasat mai sus, fiind asociat cu proiectul, nu cu un singur telefon.

Utilizatorul decide singur care dispozitive trebuie să primească notificări în cadrul proiectului. De exemplu, notificările pentru serverul casnic pot fi trimise telefonului personal și tabletei, iar notificările pentru site-ul de muncă — doar telefonului de serviciu.

În cazul în care utilizatorul cumpără un telefon nou sau dezactivează dispozitivul vechi, scriptul sursă continuă să folosească același MaxCode. Lista curentă a destinatarilor este menținută în PushMeld.

Aceasta include și adăugarea de email sau modificarea altor parametri de livrare.

De aceea, MaxCode nu este doar o metodă de reducere a numărului de chei. Crează o barieră între eveniment și rutina sa de livrare. Tot ce este după această barieră poate fi schimbat fără a modifica programul sursă.

Gratuit pentru sarcini obișnuite

Produsele de infrastructură sunt deseori prezentate în contexte corporate, cu comenzi de server, volume mari de date și alte cerințe complexe. Din această cauză, poate părea că PushMeld este destinat exclusiv dezvoltatorilor profesioniști și companiilor.

În practică, orice se poate începe cu o sarcină obișnuită de acasă.

Aplicația în sine este gratuită. Funcțiile principale ale MaxCode funcționează fără plată în limitele gratuite disponibile. Utilizatorul poate crea proiecte, conecta dispozitive și primi notificări de la serverul, site-ul, scriptul sau automatizarea casei sale.

Acesta nu este un mod demonstrativ temporar, care dispare după ce afli de produs. Pentru scenarii zilnice, posibilitățile gratuite pot fi suficiente.

Planurile tarifare sunt necesare doar dacă numărul de solicitări crește, se adaugă funcții suplimentare sau sistemul este utilizat pe scară mai largă.

Un principiu pentru utilizator și companie

Mecanica MaxCode nu se schimbă în funcție de mărimea sarcinii.

Utilizatorul primește notificare despre încheierea backup-ului. O mică fabrică află că 3D printerul a terminat o imprimare lungă. Magazinul online primește o comandă nouă. Echipa tehnică primește o notificare despre o eroare server.

Volumul și numărul proiectelor diferă, dar principiul rămâne același.

Să presupunem o organizație cu trei surse de evenimente:

  • Orders — noi comenzi;

  • Payments — plăți și retururi;

  • ServerStatus — erori tehnice.

Fiecărui proiect i se creează un MaxCode separat și sunt configurate dispozitive specifice. Comenzile pot fi către proprietar și manager, evenimentele financiare — spre personalul responsabil, iar erorile tehnice — către specialiștii care întrețin serverul.

Sistemul companiei, în toate cazurile, face aproape același lucru: transmite conținutul evenimentului și MaxCode-ul proiectului corespunzător.

Dacă se schimbă angajați, dispozitive sau metode de livrare, nu este nevoie să reconfigureze sistemele sursă. Administrarea rămâne în interiorul PushMeld.

APNs, FCM și HMS rămân în afara programului

Pentru livrarea push pe diferite dispozitive pot fi utilizate APNs, FCM sau HMS. Fiecare provider are propriile reguli, tokenuri și particularități tehnice.

De obicei, aceste diferențe trebuie considerate la dezvoltarea sistemului de trimitere. În cazul PushMeld, ele sunt gestionate separat, în afara MaxCode.

Serverul de acasă, site-ul sau scriptul nu determină ce telefon folosește destinatarul, sau prin ce infrastructură trebuie să treacă un mesaj. Ei realizează o singură solicitare, iar PushMeld alege ruta de livrare nevoie.

MaxCode nu înlocuiește infrastructura Apple, Google sau Huawei. El creează o intrare unificată pentru acestea.

Astfel, sistemul sursă nu trebuie să se schimbe odată cu dispozitivele utilizatorului. Astăzi, mesajul poate fi trimis prin FCM, mâine prin APNs, iar peste o vreme, un alt telefon sau email poate fi adăugat la proiect. Pentru programul sursă, nu se schimbă nimic.

MaxCode și un API key obișnuit — nu sunt același lucru

Un API key obișnuit limitează, de obicei, doar accesul la serviciu. După verificarea cheii, sistemul încă trebuie să știe despre proiect, destinatari și metoda de livrare.

MaxCode integrează toate acestea într-un singur cod.

El permite PushMeld să recunoască proiectul, să verifice solicitarea și să aplice configurația actualizată. Programul extern trimite MaxCode și conținutul evenimentului, fără să controleze route-ul ulterior.

Diferența practică poate fi exprimată simplu: API key deschide accesul la o funcție, iar MaxCode determină în contextul cărei funcții trebuie să fie executată.

Notificare ca funcție incrementală

După experiența cu PushMeld, nu aș numi această soluție doar o aplicație de notificări push.

Mai bine ar fi spus că este o metodă de a adăuga notificări acolo unde înainte nu existau, și apoi de a le controla independent de programul sursă.

Sursa poate fi serverul de acasă, senzorul, o aplicație veche, magazinul online, propriul script sau sistemul intern al companiei. Dacă poate executa o solicitare HTTP singur sau cu un mic adaptor, evenimentul poate fi transmis în PushMeld.

Apoi, MaxCode face bariera între eveniment și livrare. Într-o parte se află programul care anunță ce s-a întâmplat, în cealaltă – PushMeld, care identifică proiectul, dispozitivele, canalele și rutamentul tehnic.

De aceea, cea mai importantă funcție a MaxCode nu este doar înlocuirea multor chei cu unul singur, ci și transferul controlului notificărilor în afara sistemului sursă. Tot ce se află după această barieră poate fi schimbat fără a atinge programul sursă, iar notificarea va fi trimisă corect.