Latest newsItaliano
Back to feedTecnologieNewsMeld Editorial

Odin MaxCode invece di decine di chiavi: come PushMeld aggiunge notifiche dove prima non c'erano

Come MaxCode trasferisce la gestione delle notifiche push ed email dai siti, server, script e dispositivi a PushMeld.

Immaginiamo un computer domestico che ogni notte crea una copia di backup di file importanti. Il risultato viene registrato nel log di sistema: operazione completata con successo o errore.

Dal punto di vista tecnico, tutto funziona. Il problema nasce di mattina: bisogna controllare manualmente il log e verificare il risultato. L'applicazione non dispone di un'anteprima mobile, non viene prevista l'invio di notifiche dagli sviluppatori e non si può creare un'infrastruttura separata solo per questa funzione, considerando l'investimento richiesto.

Con PushMeld si può aggiungere una semplice richiesta a questo processo. Dopo aver completato il backup, sul telefono arriverà un messaggio: copia creata o operazione terminata con errore. Se necessario, la stessa notifica può essere ricevuta anche via email.

Il nucleo di questa idea è MaxCode — un codice unico e protetto attraverso il quale PushMeld riceve tutte le informazioni necessarie per la consegna successiva della notifica.

Quando ho conosciuto il progetto, è stato proprio MaxCode a sembrarmi la parte più interessante. Le notifiche push e le email non sono più una novità. Più importante è il fatto che il programma di origine smette di controllare direttamente la loro consegna. Si limita a comunicare a PushMeld l'evento, mentre tutto il resto avviene al di fuori.

Per contesto: PushMeld fa parte del sistema MELD®, mentre DigiMeld UG è l’azienda che lo sviluppa.

La fonte conosce solo l'evento

Una semplice integrazione delle notifiche si espande rapidamente in dettagli tecnici. Bisogna definire il progetto, configurare l'accesso, gestire le chiavi, considerare i token dei dispositivi, configurare l'invio di email e rispettare i requisiti delle diverse piattaforme mobili.

PushMeld trasferisce tutto questo da un sistema di origine a un contorno gestito separato.

Il programma di backup conosce solo due cose: se l’operazione si è conclusa con successo o con errore. Trasmette MaxCode, l’intestazione e il testo del messaggio.

Non ha bisogno di sapere:

  • quanti dispositivi sono connessi al progetto;

  • quale telefono è attivo;

  • attraverso quale provider deve passare il push;

  • se la consegna via email è attiva;

  • se l’utente ha un nuovo smartphone;

  • se un vecchio tablet è stato disattivato;

  • chi deve ricevere una notifica specifica.

Tutto ciò è già definito all’interno di PushMeld.

A mio parere, qui risiede la principale idea architettonica del progetto: MaxCode sposta la gestione delle notifiche dall’applicazione in cui si verifica l’evento al sistema che le consegna.

Un MaxCode al posto di una moltitudine di chiavi

Di solito, quando si collega un servizio esterno, si devono gestire più entità. Si usa un identificativo del progetto, una chiave di accesso, e si possono richiedere segreti, token dei dispositivi e configurazioni specifiche dei provider.

MaxCode unisce tutto ciò in un unico codice sicuro.

Ogni progetto ha il suo MaxCode, che combina l’identificazione del progetto, il diritto di invio e i dati necessari a PushMeld per applicare la configurazione corretta di consegna.

Il sistema di invio non ha bisogno di conservare separatamente:

  • l’identificativo del progetto;

  • API-key e eventuali segreti;

  • token dei dispositivi connessi;

  • parametri di ogni destinatario;

  • chiavi di diversi provider push;

  • impostazioni separate per push e email.

Nel programma, nel sito o nello script si aggiunge un solo MaxCode. Ricevuto con il messaggio, PushMeld riconosce il progetto, verifica la richiesta, individua i dispositivi connessi e sceglie i canali disponibili.

Perciò MaxCode non deve essere visto come un’altra chiave, ma come l’unico codice che sostituisce l’intera associazione di chiavi, token e identificativi sparsi.

Notifiche da sistemi non previste

MaxCode può essere utilizzato in qualsiasi sistema che sia in grado di effettuare autonomamente o tramite un piccolo script una richiesta HTTP.

Ad esempio, PushMeld può segnalare quando:

  • il server domestico non risponde;

  • il backup si conclude o si verifica un errore;

  • un proprio script ha eseguito un processo lungo;

  • una stampante 3D ha terminato la stampa;

  • un sensore ha rilevato una perdita;

  • si è aperta una porta o si è attivato un allarme;

  • spunta una certa informazione sul sito;

  • il prezzo di un prodotto cambia;

  • si libera spazio di scrittura;

  • un vecchio programma ha terminato di elaborare un grande file;

  • un piccolo negozio online ha ricevuto un nuovo ordine.

Ogni fonte potrebbe non avere una sua app dedicata. Alcuni dispositivi sono in grado di accedere solo a un URL, altri possono eseguire un comando personalizzato e altri ancora si possono integrare con uno script di automazione.

Questo basta per trasmettere l’evento a PushMeld.

La fonte non si trasforma in un sistema di notifiche indipendente, ma si limita a registrare l’evento e inviare un messaggio con MaxCode. Il resto — destinatari, dispositivi, canali e percorso tecnico — rimane gestito da PushMeld.

Non solo push, anche email

Il nome PushMeld è associato principalmente alle notifiche sui telefoni, ma le possibilità del progetto non si limitano a questo.

Per consegnare le notifiche, si può usare push, email o entrambi i canali, in base alle impostazioni del progetto e alle possibilità disponibili.

Ad esempio, si può mostrare una notifica di backup di successo sul telefono e inviare via email un errore grave.

Il programma di origine, in entrambi i casi, effettua una richiesta identica con MaxCode. Non serve configurare separatamente il server email, conservare le impostazioni o creare uno script indipendente.

Le decisioni sui canali di consegna avvengono all’interno di PushMeld. Se in seguito l’utente aggiunge l’email a un progetto già esistente, non sarà necessario modificare il programma di backup.

Inoltre, l’email viene usata qui non come un’astratta email di massa, ma come un secondo metodo per comunicare un evento proveniente dal progetto connesso.

Un progetto, una fonte di eventi

I progetti consentono di suddividere le notifiche in base alla loro funzione.

Un utente può creare, ad esempio:

  • HomeServer — stato del server domestico;

  • Backups — risultati del backup;

  • SmartHome — sensori e automazione domestica;

  • PriceMonitor — variazioni di prezzo;

  • Website — nuove richieste dal sito personale.

Ogni progetto ottiene un proprio MaxCode. Grazie a questo, l’automazione domestica non utilizza il codice del sito, e il monitoraggio dei prezzi non si mescola con i backup.

Nel dettaglio, si capisce immediatamente l’origine del messaggio e a quale attività si riferisce.

Questo tipo di suddivisione è particolarmente utile quando si moltiplicano le fonti. Invece di un unico flusso generale, l’utente gestisce più canali indipendenti, ognuno con proprie impostazioni di consegna.

Nuovo telefono senza modificare i programmi

Il token push standard è legato a un’app installata su un dispositivo specifico.

Se una persona ha due telefoni e un tablet, ci sono più token. Se si reinstalla l’app o si cambia dispositivo, il token può cambiare o smettere di funzionare.

MaxCode si trova sopra questo livello. Riguarda il progetto, non un singolo telefono.

L’utente decide quali dispositivi devono ricevere i messaggi del progetto. Ad esempio, le notifiche del server domestico possono essere dirette al telefono e al tablet, mentre gli eventi del sito lavorativo solo allo smartphone aziendale.

Se si acquista un nuovo telefono o si disattiva un dispositivo vecchio, lo script di origine continua a usare lo stesso MaxCode. L’elenco aggiornato dei destinatari si modifica all’interno di PushMeld.

Lo stesso vale per l’aggiunta di email o la modifica di altre impostazioni di consegna.

Per questo MaxCode non è solo un modo per ridurre il numero di chiavi. Costituisce un confine tra l’evento e il suo percorso successivo. tutto ciò che avviene oltre questa linea può essere modificato senza intervenire sull’app di origine.

Gratuito per le attività di base

I prodotti infrastrutturali sono spesso descritti attraverso sistemi aziendali, comandi server e grandi volumi di dati. Per questo può sembrare che PushMeld sia rivolto esclusivamente a sviluppatori professionisti e aziende.

In realtà, si può iniziare con un semplice compito domestico.

L’applicazione stessa è gratuita. Le funzionalità principali di MaxCode funzionano senza costi, entro limiti gratuiti disponibili. È possibile creare un progetto, connettere un dispositivo e ricevere notifiche dal proprio server, sito, script o automazione domestica.

Non si tratta di una versione dimostrativa temporanea, che smette di funzionare dopo aver conosciuto il prodotto. Per scenari quotidiani, le possibilità gratuite possono essere più che sufficienti.

I piani tariffari sono utili quando aumentano le richieste, si richiedono funzioni aggiuntive o l’uso si amplia.

Un principio unico per persone e aziende

La meccanica di MaxCode non cambia in base alla dimensione del compito.

Una persona riceve notifiche di backup completato. Una piccola officina sa che la Stampante 3D ha terminato una stampa lunga. Un negozio online riceve un nuovo ordine. Il team tecnico riceve un avviso di errore sul server.

Le quantità e i progetti variano, ma il principio rimane lo stesso.

Immaginiamo un’organizzazione con tre fonti di eventi:

  • Orders — nuovi ordini;

  • Payments — pagamenti e rimborsi;

  • ServerStatus — errori tecnici.

Per ciascuno viene creato un MaxCode dedicato e configurati i dispositivi rispettivi. Gli ordini possono essere diretti al proprietario e al manager, i pagamenti ai responsabili finanziari e gli errori ai tecnici di supporto.

In ogni caso, il sistema dell’azienda invia sostanzialmente lo stesso: il contenuto dell’evento e il MaxCode del progetto corrispondente.

Se cambiano i collaboratori, i dispositivi o le modalità di consegna, i sistemi di origine non devono essere riconfigurati. La gestione rimane all’interno di PushMeld.

APNs, FCM e HMS restano nel realm del sistema

Per la consegna push su vari dispositivi si possono usare APNs, FCM o HMS. Ognuno di questi provider ha regole, token e caratteristiche tecniche proprie.

Di solito, queste differenze vanno considerate nello sviluppo del sistema di invio. Nel caso di PushMeld, sono un limite oltre il MaxCode.

Il server domestico, il sito o lo script non stabiliscono quale telefono riceve e quale infrastruttura usa. Eseguono una richiesta, e PushMeld sceglie il percorso appropriato.

MaxCode non sostituisce l’infrastruttura Apple, Google o Huawei, ma crea un punto di accesso unico davanti ad essa.

Grazie a questo, il sistema di origine non cambia in base ai dispositivi degli utenti. Oggi, può inviare tramite FCM, domani attraverso APNs, e fra qualche tempo si può aggiungere ancora un telefono o un’email al progetto. Per la gestione dell’evento, niente cambia.

MaxCode e l’API-KEY tradizionale: differenze

Un’API key normale di solito consente solo l’accesso ai servizi. Dopo il controllo, il sistema deve comunque comunicare a quale progetto, destinatario e metodo di consegna si riferisce la richiesta.

MaxCode unisce in un solo codice questo contesto.

Permette a PushMeld di riconoscere immediatamente il progetto, verificare la richiesta e applicare le configurazioni correnti. Il sistema esterno invia MaxCode e il contenuto dell’evento, senza gestire il percorso successivo.

Un riassunto pratico: l’API key permette l’accesso alla funzione, MaxCode definisce anche in quale contesto la funzione deve essere eseguita.

Notifica come funzionalità plug-in

Dopo aver scoperto PushMeld, non lo considererei semplicemente un’app per le notifiche push.

Sarebbe più corretto dire che si tratta di un modo per aggiungere notifiche dove prima non c’erano, e poi gestirle indipendentemente dal sistema di origine.

La fonte può essere il server domestico, un sensore, una vecchia applicazione, un negozio online, uno script proprio o il sistema interno di un’azienda. Se può eseguire una richiesta HTTP autonomamente o tramite un piccolo adattatore, l’evento si può trasmettere a PushMeld.

Poi MaxCode crea un confine tra l'evento e la sua consegna. Da un lato c’è il programma che segnala cosa è successo. Dall’altro, PushMeld, che riconosce il progetto, i dispositivi, i canali e il percorso tecnico.

Perciò, la funzione più importante di MaxCode non è solo sostituire molte chiavi con una sola, ma spostare la gestione delle notifiche oltre il sistema di origine.

Puoi cambiare il telefono, aggiungere o disattivare email, modificare il metodo di consegna — tutto senza modificare il programma di origine. Il sistema continuerà a limitarsi a segnalare l’evento.