Latest newsSvenska
Back to feedTeknologierNewsMeld Editorial

Odin MaxCode istället för ett dussin nycklar: Hur PushMeld lägger till aviseringar där de inte fanns

Hur MaxCode flyttar hanteringen av push- och email-aviseringar från webbplatser, servrar, skript och enheter till PushMeld.

Föreställ dig en hemdator som varje natt skapar en säkerhetskopia av viktiga filer. Resultatet läggs i systemloggen: operationen lyckades eller ett fel inträffade.

Allt fungerar tekniskt. Problemet uppstår på morgonen: personen måste själv öppna loggen och kontrollera resultatet. Programmet har ingen mobilapp, aviseringar från utvecklare är inte förinställda, och ingen vill bygga en separat infrastruktur för att endast stödja en funktion.

Med hjälp av PushMeld kan en enkel förfrågan läggas till i processen. Efter att säkerhetskopieringen är klar skickas ett meddelande till telefonen: kopian är klar eller operationen misslyckades. Om så önskas kan samma avisering fås via email.

Grundidén är MaxCode — en enhetlig, säkrad kod genom vilken PushMeld får all nödvändig information för att sedan kunna leverera aviseringen.

När jag lärde känna projektet framstod just MaxCode som dess mest intressanta del. Push-aviseringar och email är inget nytt, men mycket viktigare är det faktum att den ursprungliga programvaran inte längre styr leveransen. Den bara rapporterar händelsen, medan resten sker utanför den.

För tydlighetens skull: PushMeld hör till systemet MELD®, och DigiMeld UG är företaget som utvecklar det.

Källan känner bara till händelsen

Vanlig integration av aviseringar kan snabbt bli tekniskt komplex. Man måste definiera ett projekt, konfigurera åtkomst, lagra nycklar, ta hänsyn till enhets-token, koppla email-sändning och hantera olika mobila plattformars krav.

PushMeld flyttar allt detta från den ursprungliga systemet till en separat, hanterbar enhet.

Säkerhetskopieringsprogrammet vet bara en sak: att operationen lyckades eller misslyckades. Det skickar MaxCode, rubrik och meddelandetext.

Det behöver inte känna till:

  • hur många enheter som är kopplade till projektet;

  • vilken telefon som är aktiv just nu;

  • vilken operatör pushen ska passera igenom;

  • om email-leverans är aktiverad;

  • om användaren har fått en ny smartphone;

  • om den gamla surfplattan är avstängd;

  • vem som ska få en specifik avisering.

Allt detta definieras redan inom PushMeld.

Enligt min åsikt är detta den huvudsakliga arkitektoniska idén: MaxCode flyttar styrningen av aviseringar från programmet där händelsen inträffat till det system som ansvarar för leveransen.

En MaxCode istället för flera nycklar

Vanligtvis kräver anslutning av externa tjänster att man hanterar flera olika entiteter: projekt-ID, åtkomstnyckel, eventuellt hemligheter, enhetstoken och konfiguration för specifika leverantörer.

MaxCode kombinerar allt som behövs för att skicka i en enhetlig, säker kod.

Varje projekt får sin egen MaxCode. Den kopplar samman projektets identifiering, rätt att skicka och data som gör att PushMeld kan tillämpa aktuell leveranskonfiguration.

Avsändarsystemet behöver inte lagra separat:

  • projekt-ID;

  • API-nyckel och ytterligare hemlighet;

  • tjänsttokens för anslutna enheter;

  • parameter för varje mottagare;

  • nycklar för olika push-leverantörer;

  • färdiga inställningar för push och email.

I programmet, webbplatsen eller skriptet tillfogas en MaxCode. När PushMeld får detta tillsammans med meddelandet identifierar den projektet, kontrollerar förfrågan, hittar anslutna enheter och väljer kanaler.

MaxCode bör därför inte ses som ännu en nyckel, utan som ersättningen för hela den sekvens av separata nycklar, tokens och identifikatorer — ett enda kodord.

En avisering från en plats där den inte förväntas

MaxCode kan användas i vilken system som helst som kan göra ett HTTP-anrop självständigt eller med en liten hjälpskript.

Ett exempel: PushMeld kan rapportera när:

  • hemservrar slutar svara;

  • säkerthetskopieringen är klar eller misslyckades;

  • egen skript har utfört en långvarig process;

  • 3D-skrivaren är klar med utskriften;

  • en sensor har upptäckt en läcka;

  • en dörr öppnades eller en larmsignal utlöses;

  • önskad information dyker upp på webbplatsen;

  • priset på en vara förändras;

  • det finns ledigt utrymme för data.

Varje källa behöver inte ha en egen applikation. Vissa enheter kan endast göra förfrågningar till specificerad adress, andra kan starta ett användarscript, och vissa kan till och med automatiseras med enkla scenarier.

Det räcker för att skicka en händelse till PushMeld.

Källan i detta fall förblir inte en självständig aviseringstjänst, utan bara en rapportör av händelsen som skickar MaxCode. Resten — mottagare, enheter, kanaler och teknisk leveransväg — hanteras inom PushMeld.

Inte bara push utan även email

Namn som PushMeld förknippas främst med aviseringar till mobiltelefoner, men projektets möjligheter är bredare än så.

Leverans kan ske via push, email eller båda — beroende på projektets inställningar och tillgängliga funktioner.

Till exempel: en bekräftelse på lyckad säkerhetskopiering kan visas på telefonen, medan ett allvarligt fel kan skickas till email.

Den ursprungliga programvaran gör i båda fallen samma förfrågan med MaxCode. Det behövs ingen separat email-server, inga ytterligare inställningar eller ett annat skript.

Beslutet om kanaler tas internt i PushMeld. Om användaren senare kopplar en email till ett befintligt projekt behöver man inte ändra säkerhetskopieringsskripten.

Här används email inte som massutskick, utan som ett komplement för att rapportera en händelse från ett kopplat projekt.

Ett projekt — en källa till händelser

Projekt tillåter att differentiera aviseringar utifrån deras syfte.

En vanlig användare kan skapa, till exempel:

  • HomeServer — status för hemservern;

  • Backups — resultat av säkerhetskopior;

  • SmartHome — enheter och automation i hemmet;

  • PriceMonitor — prisändringar;

  • Website — nya formulär och meddelanden på webbplatsen.

Varje projekt får sin egen MaxCode. Detta gör att hemautomation inte är kopplat till samma kod som prissystemet, och att backup-rapporter inte blandas med andra aviseringar.

Det är tydligt från början vilken meddelande som inkommit och vilken uppgift det hör till.

Detta är särskilt värdefullt när det finns många källor, eftersom det ger flera oberoende kanaler med egna inställningar för leverans.

Nya telefoner kräver ingen ny programvara

Ett push-token är kopplat till en specifik installation av appen på en enhet.

Om en person har två telefoner och en surfplatta kan det bli flera token. Vid ominstallation eller enhetsbyte kan ett token förändras eller sluta fungera.

MaxCode ligger på en högre nivå. Det är kopplat till projektet, inte till en enhet.

Användaren bestämmer själv vilka enheter som ska kopplas till projektet och ta emot dess aviseringar. Till exempel kan aviseringar för hemservern skickas till både mobil och surfplatta, medan webbplatsrelaterade händelser bara går till tjänstemobilen.

Oavsett om en användare köper en ny telefon eller stänger en gammal enhet, fortsätter det ursprungliga skriptet att använda samma MaxCode. Den aktuella listan över mottagare ändras inom PushMeld.

Det samma gäller för att lägga till email eller ändra leveransmetoder.

Därför är MaxCode inte bara ett sätt att minska antalet nycklar. Det skapar en gräns mellan händelsen och dess vidare färdväg. Allt som ligger efter denna gräns kan ändras utan att påverka ursprungssystemet.

Gratis för vanliga användningsområden

Infrastrukturprodukter beskrivs ofta med hjälp av företagsystem, serverkommandon och stora datamängder. Det kan därför verka som att PushMeld är till för professionella utvecklare och företag.

I praktiken kan du börja med en enkel hemanvändning.

Programmet i sig är gratis. Huvudfunktionerna för MaxCode fungerar också utan kostnad inom tillgängliga gratisgränser. En användare kan skapa ett projekt, koppla en enhet och ta emot aviseringar från sin server, webbplats, skript eller automation.

Detta är inte ett tillfälligt demonstrationsläge som slutar fungera efter att man har lärt känna produkten. För dagligt bruk kan de gratis tillgängliga funktionerna räcka länge.

Betalplaner krävs först när antalet förfrågningar ökar, fler funktioner behövs eller systemet används i större skala.

En princip för både privatpersoner och företag

MaxCode:s mekanik förändras inte beroende på uppgiftens omfattning.

En person får ett meddelande om säkerhetskopian är klar. En liten verkstad får veta att deras 3D-printer är färdig med en långsam utskrift. En webshop får en ny beställning. IT-avdelningen får en felrapport från servern.

Även om volymer och projektantal skiljer sig, är principen densamma.

Föreställ dig en organisation med tre källor:

  • Orders — nya beställningar;

  • Payments — insättningar och återbetalningar;

  • ServerStatus — tekniska fel.

Varje projekt får sin egen MaxCode och sina anpassade enheter. Beställningar går till ägaren eller chefen, ekonomiska händelser till den ansvarige, och tekniska fel till teknikkonsulter. Systemet skickar alltid bara själva innehållet och MaxCode för projektet.

Ändras personal, enheter eller leveranssätt är det inte nödvändigt att ändra grundsystemet. Hanteringen sker internt inom PushMeld.

APNs, FCM och HMS ligger utanför programmet

För push-leverans kan APNs, FCM eller HMS användas. Varje leverantör har sina regler, tokens och tekniska detaljer.

Vanligtvis måste utvecklaren ta hänsyn till detta när den bygger sitt sändningssystem. I PushMeld är dessa skillnader gömda bakom MaxCode.

Hemservern, webbplatsen eller skriptet bestämmer inte vilken telefon mottagaren använder eller vilken infrastruktur som ska användas. De gör en enkel förfrågan, och PushMeld väljer den rätta rutten.

MaxCode ersätter inte infrastruktur från Apple, Google eller Huawei — det skapar en gemensam ingång före dem.

Det betyder att den ursprungliga systemet inte behöver anpassas efter enhetens leverantör. Ett meddelande kan skickas via FCM en dag, via APNs nästa, och senare kan ett annat telefonnummer eller email kopplas till projektet. För den app som berättar om händelsen förändras inget.

MaxCode och vanliga API-nycklar — inte samma sak

En vanlig API-nyckel tillåter meist att få åtkomst till en tjänst. Efter att nyckeln har verifierats behöver systemet fortfarande få information om projekt, mottagare och leveransmetod.

MaxCode kombinerar detta i ett och samma kodord.

Det gör att PushMeld kan känna igen projektet, verifiera förfrågan och tillämpa aktuella inställningar. Den externa programvaran skickar MaxCode och innehållet, medan vidare leverans sköts av PushMeld.

Praktiskt kan man säga att API-nyckeln ger åtkomst till en funktion, men MaxCode samtidigt definierar i vilken kontext den ska användas.

Aviseringar som en tilläggsfunktion

Efter att ha lärt känna PushMeld skulle jag inte kalla det enbart för en app för push-aviseringar.

Istället är det ett sätt att lägga till aviseringar där de tidigare inte funnits och sedan styra dem oberoende av det ursprungliga programmet.

Källan kan vara en hemserver, en sensor, en gammal app, en webbshop, ett skript eller ett internt system. Om den kan göra ett HTTP-anrop självständigt eller med ett litet hjälpverktyg, kan händelsen skickas till PushMeld.

MaxCode skapar sedan en gräns mellan händelsen och leveransen. Den första sidan av gränsen är programmet som rapporterar vad som hänt. Den andra är PushMeld, som identifierar projekt, enheter, kanaler och tekniska rutten.

Bästa sättet att förstå MaxCode är att den inte bara ersätter många nycklar med ett enda kodord. Den tar kontrollen över aviseringarna ut ur ursprungssystemet.

Telefonen kan bytas, email kan läggas till, gamla enheter kan stängas av och rutten för leveransen kan ändras. Programmet fortsätter att bara rapportera att en händelse skett.