Latest newsHrvatski
Back to feedTehnologijeNewsMeld Editorial

Odin MaxCode umjesto desetke ključeva: kako PushMeld dodaje obavijesti tamo gdje ih nije bilo

Kako MaxCode prenosi upravljanje push- i email-obavijestima iz web stranica, servera, skripti i uređaja u PushMeld.

Zamislimo kućni računalni sustav koji svake noći stvara sigurnosnu kopiju važnih datoteka. Rezultat se zapisuje u sustavski dnevnik: operacija je uspješno završena ili je došlo do pogreške.

Tehnički sve funkcionira. Neugodnost nastaje ujutro: korisnik mora sam otvoriti dnevnik i provjeriti rezultat. Program nema mobilnu aplikaciju, podrška za slanje obavijesti od strane developera nije predviđena, a izgradnja zasebne infrastrukture za samo jednu funkcionalnost većina neće napraviti.

S pomoću PushMeld u takav proces može se dodati jednostavan zahtjev. Nakon završetka sigurnosne kopije na telefon će stići poruka: kopija je kreirana ili je došlo do pogreške. Po potrebi, isto obavještenje se može dobiti i putem emaila.

Osnova ove ideje je MaxCode — jedinstveni zaštićeni kod koji PushMeld koristi za dobivanje svih informacija potrebnih za nastavak isporuke obavijesti.

Kad sam upoznao projekt, MaxCode mi je bio najzanimljiviji dio. Push obavijesti i email nisu novost. Značajnije je to što izvornu programsku opremu prestaje upravljati njihovom dostavom. Ona samo obavještava PushMeld o događaju, a sve ostalo događа se već iza nje.

Odmah ću navesti kontekst: PushMeld je dio sustava MELD®, a DigiMeld UG je tvrtka koja ga razvija.

Izvor zna samo za događaj

Uobičajena integracija obavijesti brzo postaje složena uslijed tehničkih detalja. Potrebno je definirati projekt, podesiti pristup, pohranjivati ključeve, uzimati u obzir tokene uređaja, uspostavljati email slanje i rukovati zahtjevima različitih mobilnih platformi.

PushMeld sve to prebacuje iz izvornog sustava u zasebni, upravljivi krug.

Program sigurnosne kopije zna samo jedno: operacija je završila uspješno ili je došlo do pogreške. On šalje MaxCode, naslov i sadržaj poruke.

Njegova funkcija nije da poznaje:

  • koliko je uređaja povezano s projektom;

  • koji je telefon trenutno aktivan;

  • kroz kojeg providera ide push;

  • je li dostava putem emaila uključena;

  • ima li korisnik novi pametni telefon;

  • je li stari tablet isključen;

  • tko bi trebao dobiti određenu obavijest.

Sve se to određuje već unutar PushMeld.

Prema mom mišljenju, ovdje leži glavna arhitektonska ideja projekta: MaxCode prebacuje upravljanje obavijestima iz programa u koji je događaj zabilježen, u sustav koji ih dostavlja.

Ovaj MaxCode umjesto niza ključeva

Obično kod povezivanja vanjskog servisa morate istovremeno raditi s više entiteta. Odvojeno se koristi identifikator projekta, zasebni pristupni ključ, a često i tajne, tokeni uređaja i konfiguracije providera.

MaxCode sve to objedinjava u jednom zaštićenom kodu.

Za svaki projekt kreira se vlastiti MaxCode, koji sadrži identifikaciju projekta, prava za slanje i podatke za primjenu najnovije konfiguracije isporuke od strane PushMeld.

Pošiljnoj sustav ne treba posebno pohranjivati:

  • identifikator projekta;

  • API ključ i dodatnu tajnu;

  • tokeni povezanih uređaja;

  • parametre svakog primatelja;

  • ključeve različitih push providera;

  • posebne postavke za push i email.

U program, web stranicu ili skriptu dodaje se jedan MaxCode. Nakon primanja istog s porukom, PushMeld samostalno odredi projekt, provjeri zahtjev, pronađe povezane uređaje i odabere dostupne kanale.

Stoga MaxCode ne treba smatrati još jednim ključem, već zamjenom za cijeli set raznih ključeva, tokena i identifikatora s jednim kodom.

Obavijest od tamo gdje nije predviđeno

MaxCode se može koristiti u bilo kojem sustavu koji može samostalno, ili uz pomoć jednostavnog skripta, poslati HTTP zahtjev.

Npr., PushMeld može obavijestiti kada:

  • kućni server prestane odgovarati;

  • sigurnosna kopija je završila ili je došlo do pogreške;

  • vlastiti skript je izvršio dugotrajan zadatak;

  • 3D printer završava štampu;

  • senzor bilježi propuštanje tekućine;

  • vrata su otvorena ili alarm aktiviran;

  • potrebne informacije su se pojavile na webu;

  • promijenila se cijena proizvoda;

  • slobodno je mjesto za zapisivanje;

  • stara aplikacija završila s obradom velike datoteke;

  • maloprodajni internet dobio novu narudžbu.

Svaki od ovih izvora možda nema svoju aplikaciju. Neke uređaje je moguće jednostavno pozivati na adresu, drugi dopuštaju pokretanje vlastitih komandi, treći se mogu nadopuniti automatskim scenarijima.

Ovo je dovoljno za prijenos događaja u PushMeld.

Izvor pritom ne postaje samostalni servis obavijesti, već samo bilježi događaj i šalje poruku s MaxCodeom. Sve ostalo – primatelji, uređaji, kanali i tehnički put – ostaje na strani PushMeld.

Ne samo push, već i email

Naziv PushMeld prije svega asocira na obavijesti na telefonu, no mogućnosti projekta nisu tome ograničene.

Za dostavu se mogu koristiti push, email ili oba kanala – ovisno o postavkama i dostupnim opcijama projekata.

Npr., obavijest o uspješnoj sigurnosnoj kopiji dovoljna je za prikaz na telefonu. Teška pogreška može biti dodatno poslata i emailom.

Izvorni program u oba slučaja izvršava isti zahtjev s MaxCodeom. Nije mu potrebno posebno povezivati poslužitelj za email, pohranjivati njegove postavke niti kreirati zasebni scenarij.

Odluka o kanalima dostave donosi se unutar PushMeld. Ako kasnije korisnik doda email u već postojeći projekt, sigurnosna kopija se neće morati prepisivati.

Usto, email se ovdje koristi nije kao obično masovno slanje, već kao dodatni način obavještavanja o događaju koji dolazi od povezanog projekta.

Jedan projekt — jedan izvor događaja

Projekti omogućuju razdvajanje obavijesti prema njihovoj namjeni.

Običan korisnik može, na primjer, stvoriti:

  • HomeServer — stanje kućnog servera;

  • Backups — rezultati sigurnosnih kopija;

  • SmartHome — senzori i automatizacija doma;

  • PriceMonitor — promjene cijena;

  • Website — nove upite s osobne stranice.

Svaki projekt dobiva svoj MaxCode. Zahvaljujući tome, automatizacija doma ne koristi kod web stranice, a praćenje cijena ne miješa se sa sigurnosnim kopijama.

U aplikaciji odmah je jasno odakle je stigla poruka i na koju je zadaću odnosi.

Takvo razdvajanje posebno je korisno kada je broj izvora veći. Umjesto jednog zajedničkog toka, korisnik dobiva nekoliko neovisnih kanala, za svaki od kojih se mogu odrediti vlastite postavke dostave.

Novi telefon ne zahtijeva promjenu programa

Običan push token povezan je s određenom instalacijom aplikacije na točno određenom uređaju.

Ako osoba ima dva telefona i tablet, to su već nekoliko tokena. Nakon reinstalacije aplikacije ili zamjene uređaja, pojedinačni token može promijeniti ili prestati funkcionirati.

MaxCode je iznad te razine. On se odnosi na projekt, a ne na jedan telefon.

Korisnik sam odlučuje koji uređaji su povezani i trebaju primati poruke projekta. Na primjer, obavijesti kućnog servera mogu se usmjeriti na osobni telefon i tablet, dok na službenom računalnom sustavu ostaju samo službeni smartfon ili uređaj.

Ako osoba kupi novi telefon ili isključi staro uređaj, izvornu skriptu i dalje koristit će isti MaxCode. Aktualni popis primatelja može se promijeniti unutar PushMeld.

Slično vrijedi i za dodavanje emaila ili promjenu ostalih parametara dostave.

Stoga MaxCode nije samo način za smanjenje broja ključeva — on uspostavlja granicu između događaja i njegovog nastavnog puta. Sve što se nalazi iza te granice, može se mijenjati bez intervencije u izvornom programu.

Besplatno za uobičajene zadatke

Infrastrukturni proizvodi često se opisuju kroz korporativne sustave, server komande i velike količine podataka. Zbog toga se može činiti da je PushMeld namijenjen isključivo profesionalnim programerima i tvrtkama.

U praksi, početak je jednostavan s običnim kućnim zadatkom.

Sama aplikacija je besplatna. Glavne mogućnosti MaxCode također rade bez plaćanja, unutar dostupnih besplatnih limita. Korisnik može stvoriti projekt, povezati uređaj i primati obavijesti od svog servera, web stranice, skripte ili kućne automatizacije.

Ovo nije probni demo način koji prestaje s radom nakon upoznavanja s proizvodom. Za svakodnevne scenarije, besplatne mogućnosti mogu biti dovoljne.

Cjenovni planovi potrebni su kada se poveća broj zahtjeva, zahtijevaju se dodatne funkcije ili sustav počne koristiti u većim razmjerima.

Jedan princip za pojedinca i tvrtku

Mehanika MaxCode-a ne mijenja se ovisno o veličini zadatka.

Korisnik dobiva obavijest o završetku sigurnosne kopije. Manja radionica sazna kada 3D printer završi dugotrajnu štampu. Online trgovina vidi novu narudžbu. Tehnički tim dobiva obavijest o pogrešci na serveru.

Volumeni i broj projekata mogu varirati, ali načelo ostaje isto.

Zamislimo organizaciju s tri izvora događaja:

  • Orders — nove narudžbe;

  • Payments — uplate i povrati;

  • ServerStatus — tehničke pogreške.

Za svaki projekt kreira se zasebni MaxCode i podešavaju vlastiti uređaji. Naruđbe mogu dolaziti vlasniku i prodajnom osoblju, financijski događaji — odgovornim djelatnicima, a tehničke pogreške — stručnjacima koji održavaju server.

Sustav tvrtke u svim slučajevima radi gotovo isto: prenosi sadržaj događaja i odgovarajući MaxCode projekta.

Ako se promijene djelatnici, uređaji ili načini dostave, izvorišni sustav ne mora biti ponovno konfiguriran. Upravljanje ostaje unutar PushMeld.

APNs, FCM i HMS ostaju izvan programa

Za dostavu push obavijesti na različite uređaje koriste se APNs, FCM ili HMS. Svaki provider ima vlastita pravila, tokeni i tehničke specifičnosti.

Obično, te razlike moraju biti uzete u obzir kod razvoja pošiljajućeg sustava. Kod PushMeld, one leže izvan MaxCodea.

Kućni server, web stranica ili skripta ne definiraju koji telefon koristi primatelj niti preko koju infrastrukturu mora proći poruka. Oni šalju jedan zahtjev, a PushMeld bira odgovarajući put.

MaxCode ne zamjenjuje infrastrukturu Apple, Google ili Huawei. On stvara jedinstveni ulaz pred njima.

Time izvornu sustav ne treba mijenjati ili prilagođavati promjenama na uređajima korisnika. Danas se poruka može poslati putem FCM, sutra putem APNs, a naknadno će se uprojektit još jedan telefon ili email. Za događaj u programu to neće imati učinka.

MaxCode i običan API ključ — nisu isto

Običan API ključ uglavnom samo dopušta pristup usluzi. Nakon provjere ključa, sustav i dalje mora posebno identificirati projekt, primatelje i način dostave.

MaxCode tu logiku objedinjava u jednom kodu.

Omogućuje PushMeld-u prepoznati projekt, provjeriti zahtjev i primijeniti važeće postavke. Vanjski program šalje MaxCode i sadržaj događaja, ali ne upravlja daljnjim putem.

Kratko i jasno, razlika je u tome: API ključ omogućava pristup funkciji, a MaxCode istovremeno određuje u kojem kontekstu ta funkcija treba biti izvršena.

Obavijest kao funkcija koja se može priključiti

Nakon upoznavanja s PushMeld-om, ne bih ga nazvao samo aplikacijom za push obavijesti.

Radi se više o načinu za dodavanje obavijesti tamo gdje ih prije nije bilo, a zatim za upravljanje njima neovisno od izvornog programa.

Izvor može biti kućni server, senzor, starija aplikacija, internetska trgovina, vlastiti skript ili interno poduzeće. Ako je sposoban poslati HTTP zahtjev samostalno ili preko jednostavnog adaptera, događaj se može prenijeti u PushMeld.

Zatim MaxCode postavlja granicu između događaja i njegove dostave. S jedne strane je program koji zna što se dogodilo, s druge je PushMeld, koji određuje projekt, uređaje, kanale i tehnički put.

Glavna izvedbena mogućnost MaxCode-a nije samo u zamjeni više ključeva jednim kodom. On prenosi upravljanje obavijestima izvan izvornog sustava.

Telefon se može zamijeniti, email dodati, staro uređaj isključiti, a ruta dostave promijeniti. Program će i dalje samo obavještavati o događaju, jednostavno i učinkovito.