Odin MaxCode asemel kümne võtme: kuidas PushMeld lisab teavitusi kohtadesse, kus neid varem polnud
Kuidas MaxCode viib push- ja e-kirja teavituste halduse veebisaitidelt, serveritelt, skriptidelt ja seadmetelt PushMeldi.
Kujutame ette kodikontrolli arvutit, mis igal ööl loodab oluliste failide varukoopiaid. Tulemused salvestatakse süsteemilogisse: operatsioon õnnestus või tekkis viga.
Tehniliselt töötab kõik. Mugavus puudub hommikul: inimesel tuleb ise logi avada ja tulemusi kontrollida. Rakendusel puudub mobiilirakendus, arendajatel pole plaanis teavitusi saata ning ühekordse funktsiooni jaoks ei tehta eraldi infrastruktuuri.
Kuid PushMeld võimaldab sellises protsessis lisada lihtsa päringu. Pärast varundamist saab telefonile sõnumi: varukoopia tehtud või operatsioon lõppes veaga. Vajadusel saab sama teavituse saada ka e-kirjaga.
Selle idee alus on MaxCode – ühine kaitstud kood, mille kaudu PushMeld saab kogu vajalikku teavet edasiseks teavituste edastamiseks.
Kui ma esimest korda projektiga tutvusin, paistsid just MaxCode olevat selle kõige huvitavam osa. Push-teavitused ja e-kirjad pole ammu miski uudne. Olulisem on see, et algse programmiga ei hallata enam nende edastust. Ta teatab vaid PushMeldile juhtumist ning edasi toimub kõik juba selle väljaspool.
Annab kohe konteksti: PushMeld kuulub MELD® süsteemi ning DigiMeld UG on ettevõte, mis seda arendab.
Allikas teab ainult sündmust
Tavaline teavituste integreerimine keerleb kiiresti tehnilistes detailides. Tuleb määrata projekt, seadistada ligipääs, salvestada võtmed, arvestada seadmete tokenid, liidestada e-kirja saatmine ning tegeleda erinevate mobiiliplatvormide nõuetega.
PushMeld kannab kõik need asjad algsüsteemist eraldi haldusalasse.
Varundusprogramm teab vaid üht: operatsioon lõppes edukalt või veaga. See saadab MaxCode, sõnumi pealkirja ja teksti.
Ei ole tarvis teada:
mitu seadet on projekti ühendatud;
milline telefon on aktiivne;
millise operaatoriga peab push läbi minema;
kas e-kirja kohaletoimetamine on lubatud;
kas kasutajal on uus nutitelefon;
kas vana tahvelarvuti on välja lülitatud;
kes peaks konkreetse teavituse saama.
Kõik see määratakse juba PushMeldis.
Minu arvates ongi selle projekti peamine arhitektuuriline mõte see, et MaxCode viib teavituste juhtimise sündmusprogrammist edasi süsteemile, mis teavitusi edastab.
Üks MaxCode paljude võtmete asemel
Tavaliselt, kui ühendatakse välisteenust, tuleb töötada mitme objekti kallal. On projekti identifikaator, pääsuvõti, ka võimalusel salastähed, seadmete tokenid ja konkreetsete teenusepakkujate seaded.
Aga MaxCode ühendab kõik vajalikud komponendid kaitstud koodis.
Igal projektil on oma MaxCode. See sisaldab projekti identifikaatorit, õigust saata ning andmeid, mis võimaldavad PushMeldil valida sobiva paketiseadistuse.
Saadetavale süsteemile ei ole vaja eraldi salvestada:
projekti identifikaatorit;
API-võtit ja lisasaladust;
ühendatud seadmete tokeneid;
kõigi saajate parameetreid;
erinevate push-teenuse pakkujate võtmeid;
eraldi seadeid push- ja e-kirja jaoks.
Süsteemi, kodulehte või skripti lisatakse ainult üks MaxCode. Selle saamine koos sõnumiga võimaldab PushMeldil ise tuvastada projekti, kontrollida päringut, leida ühendatud seadmed ning valida sobivad kanalid.
Seega ei ole MaxCode lihtsalt teine võti liigsete võtmekimbu seas, vaid see asendab ammendunud võtmete, tokenite ja identifikaatorite komplekti ühe koodiga.
Teavitamine sealt, kus seda ei peeta ette
MaxCode on kasutatav igas süsteemis, mis saab independently või väikese abirakendusega HTTP-päringu teha.
Näiteks võib PushMeld teavitada, kui:
kodiserver ei vasta enam;
varundus on lõpetatud või veaga;
isikukontrolli skript on pikalt töötanud;
3D-printer on lõpetanud printimise;
andur on leke avastanud;
ukse on avatud või signalisatsioon põles välja;
veebilehel ilmub vajalik info;
toote hind muutub;
salvestuskoht vabastub;
vana programm lõpetas suure faili töötlemise;
väike internetipood sai uue tellimuse.
Kõigil neil allikatel ei pruugi olla oma rakendust. Mõned seadmed võivad lihtsalt ühenduda määratud aadressiga, teised võimaldavad käivitada kasutaja käsu, kolmandad saab täiendada väikese automatiseerimisskriptiga.
See on piisav, et edastada sündmus PushMeldile.
Allikas ei muutu iseseisvaks teavitusteenuseks. Ta fikseerib vaid juhtunu ja saadab sõnumi MaxCode’iga. Kõike muud – saajad, seadmed, kanalid ja tehniline marsruut – jääb PushMeldi hooleks.
Mitmikpush, kuid ka e-kiri
PushMeld nime seostatakse enne kõike telefoniteavitustega, kuid selle võimalused ei piirdu sellega.
Saata saab pushi, e-kirja või mõlemat – olenevalt projekti seadetest ja võimalustest.
Näiteks võib sõnumi edukast varundusest näidata telefonis, samal ajal saata tõsise vea e-postiga.
Algprogramm saadab mõlemas olukorras ühe ja sama päringu MaxCode’iga. E-kirja serverit ja seadeid ei pea ühekordseks kasutamiseks eraldi seadistama ning teist samasugust skaprti looma.
Teavituste kanalite valik tehakse PushMeldis. Kui hiljem lisatakse olemasolevale projektile e-kiri, ei ole vaja varundusprogrammi ümber kirjutada.
Samal ajal kasutatakse e-kirja mitte kui massidele mõeldud saatmist, vaid lisameetodit sündmuse kohta teavitamiseks, mis saabu fold projekti kaudu.
Üks projekt – üks sündmuste allikas
Projekte saab kasutada teavituste eesmärgi jagamiseks.
Näiteks saab tavaline kasutaja luua:
HomeServer– kodiserveri seisund;Backups– varunduste tulemused;SmartHome– sensoorid ja koduautomaatika;PriceMonitor– hinnamuutused;Website– uued päringud isiklikult veebilehel.
Igal projektil on oma MaxCode. Tänu sellele ei kasuta koduautomaatika koodi veebilehtedelt ning hinnakontroll ei sega varukoopiaid.
Sõnumi päritolu ja seotud ülesanne on kohe näha.
Selline jagunemine on eriti kasulik, kui allikate arv suureneb. Asendades ühe ühise voo, saab inimene mitmeid sõltumatuid kanaleid ning igaühele saab seada oma seaded.
Uus telefon ei muuda tarkvara
Tavapärane push-token on seotud konkreetse rakenduse ja seadmega.
Kui inimesel on kaks telefoni ja tahvel, on juba mitu tokenit. Pärast rakenduse uuestiinstallimist või seadme vahetust võib üks token muutuda või lõppeda.
MaxCode töö tabab kõrgemal tasemel. See on seotud projektiga, mitte ühe telefoniga.
Kasutaja ise otsustab, millised seadmed on projekti seotud ning millised selle sõnumeid saavad. Näiteks kodiserveri teavitused võib suunata isiklikule telefonile ja tahvlile, samas töölehel toimuvaid sündmusi vaid töötelefonile.
Kui inimene ostab uue telefoni või lülitab välja vana seadme, jätkab algskript sama MaxCode kasutamist. Ajali kasutaja nimekiri ja saajad muutuvad PushMeldis.
Sama kehtib e-kirja lisamise või muude transpordi seadete muutmise kohta.
Seetõttu ei ole MaxCode lihtsalt viis võtmete arvu vähendamiseks, vaid see loob piiri sündmuse ja selle edasiarvamise vahel. Kõik, mis jääb selle piiri taha, saab muuta ilma algsüsteemi seadistusi muutmata.
Tasuta tavaliste ülesannete jaoks
Infrastruktuuritooteid sageli kirjeldatakse ettevõttesüsteemide, serverikäskude ja suure andmemahtude kaudu. Seetõttu võib tunduda, et PushMeld on mõeldud ainult professionaalsetele arendajatele ja ettevõtetele.
Tegelikult saab alustada tavalise koduse tööga.
Rakendus ise on tasuta. MaxCode põhivõimalused töötavad ilma maksmata, kuna kasutus- ja tasuta limiidid on siiski olemas. Inimene saab luua projekti, ühendada seadme ning saada teavitusi oma serverilt, kodulehelt, skriptidelt või koduautomaatikast.
See ei ole ajutine demo, mis pärast tutvumist lõpetab töö. Igapäevaseks kasutamiseks on tasuta võimalused enamasti piisavad.
Tariifiplaanid on vajalikud, kui taotluste arv suureneb, lisanduvad täiendavad funktsioonid või süsteem hakkab suuremas mahus kasutama.
Üks põhimõte kasutajale ja ettevõttele
MaxCode mehhanism ei muutu sõltuvalt ülesande suurusest.
Kasutaja saab teate varundamise lõpetamisest. Väike ettevõte teatab, et 3D-printer lõppes pikka trükki. E-poe omanik näeb uut tellimust. Tõrke korral saab tehniline meeskond teate serveri veast.
Võimalused ja projektide arv võivad erineda, kuid põhimõte jääb samaks.
Kujutame ette organisatsiooni kolme sündmuste allikaga:
Orders– uued tellimused;Payments– maksed ja tagastused;ServerStatus– tehnilised vead.
Igal projektil on oma MaxCode ning seadistatud omad seadmed. Tellimused võivad jõuda omaniku ja juhatajani, finantssündmused vastutavale töötajale ning tehno-vead hooldusspetsialistidele.
Ettevõtte süsteem edastab igal juhul vaid juhtumi sisu ja vastava projekti MaxCode’i.
Kui vahetuvad töötajad, seadmed või edastusviisid, ei pea algsüsteem uuesti seadistama. Haldus jääb PushMeldi hooleks.
APNs, FCM ja HMS jäävad väljapoole programmi
Push-teenuse edastamiseks erinevates seadmetes võivad kasutada APNs-i, FCM-i või HMS-i. Igal pakkujal on omad reeglid, tokenid ja tehnilised omadused.
Need erinevused tuleb tavaliselt arvesse võtta saatmisüsteemi arendamisel. PushMeldi puhul jäävad need MaxCode’i piiridesse.
Kodiserver, veebileht või skript ei määra, milline telefon saaja kasutab ning millise infrastruktuuri kaudu sõnum peaks liikuma. Nad teevad ühe päringu, PushMeld valib õige marsruudi.
MaxCode ei asenda Apple’i, Google’i või Huawei’i infrastruktuuri. See loob neile ühe kesktee.
Selle tulemusena ei pea algsüsteem muutuma kasutaja seadmeid jälgides. Täna saab sõnumit saata FCM kaudu, homme APNs kaudu ning tulevikus võib projekti lisanduda veel üks telefon või e-kiri. Millises tehnoloogias sõnum välja saadetakse, ei muuda sellest ilma algsüsteemi muutmata.
MaxCode ja tavaline API-võti ei ole üks ja seesama
Tavaline API-võti lubab tavaliselt vaid ühendust teenusele. Pärast võtme kontrolli tuleb siiski eraldi anda süsteemile teada projekt, saajad ja edastusviis.
MaxCode ühendab selle kogu konteksti ühte koodi.
See võimaldab PushMeldil tuvastada projekti, kontrollida päringut ning rakendada selle kehtivaid seadeid. Välissüsteem edastab MaxCode’i ja juhtumi sisu, kuid ei hallata edasi suunduvaid marsruute.
Lühidalt öeldes: API-võti avab juurdepääsu funktsioonile, MaxCode aga määrab konkreetse funktsiooni täitmise konteksti.
Teavitus integreeritava võimalusena
Pärast PushMeldi õppimist ei peaks seda lihtsalt push-teavituste rakendusena nimetama.
Õigem oleks öelda, et see on võimalus lisada teavitused sinna, kus neid varem polnud, ning juhtida neid sõltumatult algsüsteemist.
Allikaks võib olla kodiserver, sensor, vana rakendus, internetipood, kasutaja skript või ettevõtte sisemine süsteem. Kui ta suudab teha HTTP-päringu ise või väikese adapteriga, saab sündmuse PushMeldile edastada.
Jätkuvalt seab MaxCode piiri sündmuse ja selle edastamise vahele. Ühel pool on programm, mis teatab juhtumist. Teisel pool – PushMeld, mis määrab projekti, seadmed, kanalid ning tehnilise marsruudi.
Seetõttu ei ole MaxCode Peamiselt mitte lihtsalt võtmete arvu vähendamine üheks koodiks, vaid see viib teavituste haldamise algsüsteemi piiridest välja.
Telefon asendub, e-kiri lisatakse, vana seade eemaldatakse ning edastusviis muudetakse – programmer ei pea seda uuesti seadistama. Ta jätkab lihtsalt teavituste väljastamist osaliselt ja üksikult, nagu on vajalik.