Odin MaxCode vietā desmitiem atslēgu: kā PushMeld pievieno paziņojumus tur, kur viņi nebija paredzēti
Kā MaxCode pārnes push- un e-pasta paziņojumu pārvaldību no vietnēm, serveriem, skriptiem un ierīcēm uz PushMeld.
Iedomāsimies mājas datoru, kurš katru nakti izveido rezerves kopiju svarīgām failiņām. Rezultāts tiek reģistrēts sistēmas žurnālā: darbība ir veiksmīgi pabeigta vai notikusi kļūda.
Tecniskā ziņā tas viss darbojas. Neērtības rodas no rīta: cilvēkam pašam jāatver žurnāls un jāpārbauda rezultāts. Programmatūrai nav mobilo lietotni, nav paredzēts sūtīt paziņojumus no izstrādātājiem, un izveidot atsevišķu infrastruktūru tikai viena funkcijas dēļ nevienam nebūs lietderīgi.
Ar PushMeld šādu procesu var paplašināt ar vienkāršu pieprasījumu. Pēc rezerves kopēšanas pabeigšanas telefonā saņemsiet ziņu: kopija ir izveidota vai darbība ir beigusies ar kļūdu. Vajadzības gadījumā to pašu paziņojumu var saņemt arī pa e-pastu.
Šīs idejas pamatā ir MaxCode — vienots drošs kods, caur kuru PushMeld saņem visu nepieciešamo informāciju, lai turpinātu sūtīt paziņojumu.
Kad es iepazinos ar šo projektu, tieši MaxCode šķita man tās visinteresantākā daļa. Push paziņojumi un e-pasti jau sen nav nekas jauns. Tas, kas ir daudz nozīmīgāk, ir tas, ka sākotnējā programma pārtrauc vadīt paziņojumu piegādi. Tā tikai informē PushMeld par notikumu, bet viss pārējais notiek jau ārpus tās.
Uzreiz paskaidrošu kontekstu: PushMeld ir daļa no MELD® sistēmas, bet DigiMeld UG ir uzņēmums, kas to attīsta.
Avots zina tikai par notikumu
Parastā paziņojumu integrācija ātri kļūst par tehniskām detaļām. Ir jādefinē projekts, jāiestata piekļuve, jāglabā atslēgas, jāņem vērā ierīču tokeni, jāievieš e-pasta nosūtīšana un jāsaprot dažādu mobilo platformu prasības.
PushMeld pārvieto visu to no sākotnējās sistēmas uz atsevišķu pārvaldāmu kontūru.
Rezerves kopēšanas programma zina tikai to: darbība ir veiksmīgi pabeigta vai ir notikusi kļūda. Tā nosūta MaxCode, ziņojuma virsrakstu un tekstu.
Tam nav jāzina:
Cik ierīču ir pieslēgtas projektam;
Kura tālrunis šobrīd ir aktīvs;
Caur kādu nodrošinātāju ir jānosūta push;
Vai ir ieslēgta e-pasta piegāde;
Vai lietotājam ir jauns viedtālrunis;
Vai vecā planšete ir atslēgta;
Kurie konkrēti saņēmēji ir jāinformē.
Viss tas tiek noteikts jau PushMeld iekšienē.
Manuprāt, tieši šeit atrodas galvenā arhitektūras ideja: MaxCode pārnes paziņojumu vadību no programmas, kur notikums ir noticis, uz sistēmu, kas nodrošina to piegādi.
Viena MaxCode vietā daudzas atslēgas
Parasti, pieslēdzot ārējo pakalpojumu, ir jāstrādā ar vairākiem elementiem. Ir jāizmanto projekta identifikators, piekļuves atslēga, papildus var būt nepieciešami slepeni kodi, ierīču tokeni un konfigurācijas detaļas konkrētajiem pakalpojumu sniedzējiem.
MaxCode apvieno visu, kas nepieciešams sūtīšanai, vienā drošā kodā.
Katram projektam tiek izveidots savs MaxCode. Tajā ir apvienoti projekta identifikācija, piekļuves tiesības un dati, kas ļauj PushMeld piemērot aktuālo piegādes konfigurāciju.
Sūtīšanas sistēmai nav jāglabā atsevišķi:
projekta identifikators;
API atslēga un papildu slepenais kods;
piesaistīto ierīču tokeni;
katra saņēmēja parametri;
atšķirīgi push pakalpojumu sniedzēju atslēgas;
atsevišķas iestatījumi push un e-pastam.
Programmā, vietnē vai skriptā tiek pievienots viens MaxCode. Saņemot to kopā ar ziņojumu, PushMeld pats noskaidro projektu, pārbauda pieprasījumu, atrod pieslēgtās ierīces un izvēlas pieejamās kanālus.
Tāpēc MaxCode nedrīkst tikt saprasts kā vēl viena atslēga, ko pievieno pārējām. Tā mērķis ir aizstāt visu ierasto sasaisti ar dažādām atslēgām, tokeniem un identifikatoriem ar vienu kodu.
Paziņojums no vietas, kur tas nav paredzēts
MaxCode var tikt izmantots jebkurā sistēmā, kas spēj pati veikt HTTP pieprasījumu vai ar nelielu palīgu skriptu.
Piemēram, PushMeld var paziņot, kad:
mājas serveris vairs nerāda atbildi;
rezerves kopēšana ir pabeigta vai beigusies ar kļūdu;
pašs skripts veic ilgstošu uzdevumu;
3D drukas iekārta ir pabeigusi darbu;
sensors ir fiksējis noplūdi;
durvis ir atvērtas vai signalizācija ir aktivizēta;
vietnē parādījies vajadzīgais saturs;
Preces cena ir mainījusies;
atbrīvota vieta ierakstīšanai;
veca programma ir pabeigusi liela faila apstrādi;
mazs interneta veikals ir saņēmis jaunu pasūtījumu.
Katram šim avotam var nebūt sava lietojumprogramma. Dažas ierīces spēj tikai tieši sazināties ar norādīto adresi, citas ļauj palaist lietotāja komandu, bet trešās var papildināt ar vienkāršu automatizācijas scenāriju.
No tā ir pietiekami, lai nodotu notikumu uz PushMeld.
Avots tajā pašā laikā nepārveidojas par atsevišķu paziņojumu pakalpojumu. Tas vienkārši reģistrē notikušo un nosūta ziņojumu ar MaxCode. Viss pārējais — saņēmēji, ierīces, kanāli un tehniskais maršruts — paliek PushMeld rīcībā.
Ne tikai push, bet arī e-pasts
Vārds PushMeld galvenokārt tiek saistīts ar ziņojumiem telefonā, taču projekta iespējas šeit neapstājas.
Piegādi var nodrošināt ar push, e-pastu vai abiem kanāliem — atkarībā no projekta konfigurācijas un pieejamajām iespējām.
Piemēram, ziņa par veiksmīgu rezerves kopēšanu ir pietiekama, lai tā parādītos telefonā. Smaga kļūda var arī papildus tikt nosūtīta pa e-pastu.
Sākotnējā programma abos gadījumos veic vienu un to pašu pieprasījumu ar MaxCode. Tam nav nepieciešams atsevišķi konfigurēt e-pasta serveri, glabāt tā iestatījumus un izveidot otru neatkarīgu scenāriju.
Piegādes kanālus lēmumu pieņem PushMeld iekšienē. Ja vēlāk lietotājs pievienos e-pastu jau esošam projektam, rezerves kopēšanas skripts nevajadzēs pārprogrammēt.
Tajā pašā laikā e-pasta izmantošana šeit nav kā parasta masu sūtīšana, bet kā papildu veids informēt par notikumu, kas saņemts no pieslēgtā projekta.
Viena projekta — viens notikumu avots
Projekti ļauj atdalīt paziņojumus pēc to mērķa.
Parasts lietotājs var izveidot, piemēram:
HomeServer— mājas servera stāvokli;Backups— rezerves kopēšanas rezultātus;SmartHome— sensoru un mājas automatizāciju;PriceMonitor— cenu izmaiņas;Website— jaunas pieņemšanas no personīgās vietnes.
Katrai projekts ir savs MaxCode. Tas ļauj atdalīt mājas automatizāciju no vietnes kodu vai cenu monitoringu no rezerves kopijām.
Praktiski jau ir skaidrs, no kurienes nāk ziņa un uz kuru uzdevumu tā attiecas.
Šāda sadalīšana ir īpaši noderīga, kad avotu skaits palielinās. Tā vietā, lai vienmēr būtu viens kopīgs plūsmas avots, cilvēks saņem vairākus neatkarīgus kanālus, katram ar savu piegādes iestatījumu.
Jauns telefons nesagādā izmaiņas programmā
Parasts push-atslēgs ir saistīts ar konkrētu lietotnes uzstādījumu noteiktā ierīcē.
Ja cilvēkam ir divi telefoni un planšete, tad tas jau ir vairāki tokeni. Pārrakstot lietotni vai mainot ierīci, atsevišķs tokens var kļūt mainīgs vai pārtraukt darbību.
MaxCode funkcionē virs šī līmeņa. Tas attiecas uz projektu, nevis uz vienu tālruni.
Lietotājs pats nosaka, kuras ierīces ir saistītas ar projektu un kuras saņems ziņojumus. Piemēram, paziņojumus par mājas servera darbību var sūtīt uz personīgo telefona un planšetes, bet par darba vietnes notikumiem — tikai uz ofisa viedtālruni.
Ja cilvēks iegādājas jaunu telefonu vai atslēdz vecu ierīci, sākotnējais skripts turpina izmantot to pašu MaxCode. Aktuālais saņēmēju saraksts tiek atjaunināts PushMeld iekšienē.
Tāpat arī e-pasta pievienošana vai citu piegādes parametru maiņa notiek bez nepieciešamības pārprogrammēt programmu.
Tādēļ MaxCode nav tikai veids, kā īsināt atslēgas, tas izveido robežu starp notikumu un tā sūtīšanu. Viss, kas ir aiz šīs robežas, ir atvērts izmaiņām bez ievainojumiem sākotnējā programmā.
Bezmaksas ikdienas lietošanai
Infrastruktūras produktus bieži raksturo ar korporatīvām sistēmām, serveru komandām un lielām datu apjomām. Tādēļ var šķist, ka PushMeld ir domāts tikai profesionālajiem izstrādātājiem un uzņēmumiem.
Praktiski sāk ar ikdienas uzdevumu.
Būtiskākās MaxCode iespējas ir bezmaksas, ja tiek ievēroti pieejamie brīvie limitti. Lietotājs var izveidot projektu, pievienot ierīci un saņemt paziņojumus no sava servera, vietnes, skripta vai mājas automatizācijas.
Šīs nav īstermiņa demonstrācijas versijas, kas beidzas, iepazīstoties ar produktu. Ikdienas scenārijiem visbiežāk pietiek ar brīvajiem nosacījumiem.
Tarifu plāni ir nepieciešami, ja pieaug pieprasījums, nepieciešami papildu pakalpojumi vai sistēma tiek izmantota plašākā mērogā.
Viens princips — cilvēkam un uzņēmumam
MaxCode darbība nemainās atkarībā no uzdevuma apjoma.
Cilvēks saņem ziņu par rezerves kopēšanas pabeigšanu. Mazā darbnīca uzzina, ka 3D printeris ir pabeidzis ilgstošu drukāšanu. Interneta veikals saņem jaunu pasūtījumu. Tehniskais personāls saņem paziņojumu par servera kļūdu.
Mainās apjomi un projektu skaits, bet princips paliek tāds pats.
Iedomāsimies organizāciju ar trim avotiem:
Orders— jauni pasūtījumi;Payments— maksājumi un atmaksas;ServerStatus— tehniskas kļūdas.
Katram ir savs MaxCode un konfigurētas dažādas ierīces. Pasūtījumi iet uz īpašnieku un vadītāju, finansiālas ziņas — uz atbildīgo darbinieku, bet tehniskās kļūdas — specialistiem, kas apkalpo serveri.
Sistēma visos gadījumos nodod tikai notikuma saturu un attiecīgā projekta MaxCode.
Ja mainās darbinieki, ierīces vai piegādes veidi, sākotnējās sistēmas nav jāmaina. Vadība paliek PushMeld rokās.
APNs, FCM un HMS paliek ārpus programmas
Push paziņojumiem dažādās ierīcēs var izmantot APNs, FCM vai HMS. Katram pakalpojumu sniedzējam ir savi noteikumi, tokeni un tehniskās īpašības.
Parasti šīs atšķirības jāņem vērā izstrādājot sūtīšanas sistēmu. Šajā gadījumā PushMeld šīs atšķirības notiek aiz MaxCode robežas.
Mājas serveris, vietne vai skripts nenosaka, kurš telefons ir saņēmējs un caur kādu infrastruktūru norit sūtīšana. Tas veic vienu pieprasījumu, bet PushMeld izvēlas nepieciešamo maršrutu.
MaxCode neaizstāj Apple, Google vai Huawei infrastruktūru. Tas izveido vienotu ieeju pirms tās.
Tādējādi sākotnējā sistēma nav jāmaina, nesaskaroties ar lietotāju ierīcēm. Šodien ziņojums var tikt nosūtīts caur FCM, rīt — caur APNs, un vēlāk projektam pievienosies jauns telefons vai e-pasts. Tas nekādā veidā neietekmē notikuma programmā.
MaxCode un parasts API atslēgas — tas pats nav
Parasts API atslēga parasti tikai ļauj piekļūt pakalpojumam. Pēc atslēgas pārbaudes sistēma joprojām ir jāinformē par projektu, saņēmējiem un piegādes veidu.
MaxCode apvieno šo kontekstu vienā kodā.
Tas ļauj PushMeld atpazīt projektu, pārbaudīt pieprasījumu un piemērot aktuālās iestatījumus. Sākotnējā programma veic tikai MaxCode pieprasījumu un saturu, nevis pārvalda maršrutu.
Īsumā praktiskais izšķiršanas princips ir šāds: API atslēga dod piekļuvi funkcijai, bet MaxCode vienlaikus nosaka, kurā kontekstā tā jārīkojas.
Paziņojums kā integrējama iespēja
Pēc iepazīšanās ar PushMeld es neizvēlētos to saukt tikai par paziņojumu lietotni.
Vairāk būtu pareizi teikt, ka šis ir veids, kā pievienot paziņojumus tur, kur to agrāk nebija, un pēc tam vadīt tos neatkarīgi no sākotnējās programmas.
Avots var būt mājas serveris, sensors, veca lietotne, interneta veikals, savs skripts vai uzņēmuma iekšējā sistēma. Ja tas spēj veikt HTTP pieprasījumu vai ar nelielu palīgu skriptu, notikumu var nosūtīt uz PushMeld.
Tad MaxCode nodala notikumu no tā piegādes. Vienā pusē ir programma, kas informē par notikušo. Otrā — PushMeld, kas nosaka projektu, ierīces, kanālus un tehnisko maršrutu.
Tāpēc svarīgākā MaxCode iespēja nav tikai aizstāt vairākas atslēgas ar vienu kodu. Tā pārnes paziņojumu vadību ārpus sākotnējās sistēmas.
Telefonu var aizstāt, e-pastu pievienot, vecu ierīci atslēgt, bet piegādes maršrutu — mainīt. Programma turpinās darīt vienu — informēt par notikumu.