Programmering

Hvordan velge en database for mobilappene dine

Dagens forbrukere er avhengige av mobilapplikasjonene sine. Hvis apper ikke fungerer, vil ikke brukerne bruke dem - det er så enkelt.

Å kreve en internettforbindelse for mobilapplikasjoner er å leve i fortiden. Hvis apper er avhengige av en forbindelse, er oddsen høy for at opplevelsen vil være svak og uforutsigbar.

For å unngå avhengighet av nettverket, har leverandører av databaser og skytjenester lagt til synkronisering og frakoblede funksjoner til sine mobile tilbud. Løsninger som Couchbase's Couchbase Mobile, Microsofts Azure Mobile Services, Amazons Cognito og Googles Firebase tilbyr den viktige synkroniseringen som gjør at apper kan jobbe både online og offline.

Med så mange tilbud tilgjengelig, hvordan velger en mobilutvikler riktig teknologi for riktig applikasjon? Følgende seks nøkkelkriterier er viktigst når man vurderer mobile løsninger: plattformstøtte, sikkerhet, modelleringsfleksibilitet, konfliktløsning, synkroniseringsoptimalisering og topologistøtte.

Støt de rette klientplattformene

Hvilke klientplattformer støttes? Trenger du å gå utover iOS og Android? Ønsker du å støtte plattformer som ikke tradisjonelt betraktes som mobile, for eksempel innebygde systemer, IoT-enheter og wearables? Ønsker du også å støtte Windows og OS X stasjonære og bærbare datamaskiner? Mange av dagens applikasjoner starter på mobil, og legger deretter til et eget skrivebord eller en web-ledsager-app. Det er viktig å evaluere database- og skyalternativer basert på plattformstøtten du trenger ikke bare i dag, men også i fremtiden.

Sikre data i hvile og i bevegelse

Når du bruker synkronisert og desentralisert lagring, er det viktig å få tilgang til, overføre og lagre data sikkert. For å dekke dette helt, må du adressere autentisering, data i hvile, data i bevegelse og lese- / skrivetilgang.

Autentisering bør være fleksibel og tillate bruk av standardleverandører, offentlige og tilpassede autentiseringsleverandører. Støtte for anonym tilgang er også viktig for mange apper. For data i ro på serveren og klienten, vil du ha støtte for både kryptering av filsystem og kryptering av datanivå. For data i bevegelse, bør kommunikasjon foregå over en sikker kanal som SSL eller TLS. For data lese / skrivetilgang, bør databasen tilby detaljert kontroll over hvilke data som er tilgjengelige og endres av brukere.

Bruk en fleksibel datamodell

Datamodelleringsfleksibilitet vil diktere om du kan formulere modellkravene for appene dine på en effektiv og passende måte. Enda viktigere, det vil diktere om du effektivt kan utvikle modellen din når kravene dine endres fremover. Modellfleksibilitet er spesielt viktig i mobil fordi dagens mobilapper utvikler seg i veldig raskt tempo.

Relasjonsdatabaser er fortsatt et godt valg hvis en app krever sterk datakonsistens eller dataene er svært relasjonelle. Men når disse kravene kan lempes, tilbyr NoSQL-databaser mye større fleksibilitet.

Løs datakonflikter elegant

For mobile plattformer eller andre plattformer som bruker desentraliserte dataskrivinger, kan de samme dataene endres samtidig på flere enheter, noe som skaper en konflikt. Systemet må støtte en mekanisme for å løse disse konfliktene. Fleksibiliteten til konfliktløsningsmekanismen er viktig og bør tillate løsning automatisk, på enheten, i skyen, av et eksternt system og av et menneske.

Konflikthåndtering vil variere for hvert system. Couchbase Mobile, for eksempel, bruker revisjonstrær med standardoppløsningsregelen "mest aktiv filial vinner." Dette er den samme tilnærmingen som er tatt av revisjonskontrollsystemer som Git og mye forskjellig fra klokkebaserte systemer som tar en “siste endring vinner” -tilnærming. Klokkebaserte oppløsningssystemer er problematiske på grunn av problemene rundt klokkeforskjeller på tvers av enheter. Couchbase tillater også tilpasning (via kode på klienten eller på serveren) for å utføre mer sofistikerte konfliktløsninger som en treveis sammenslåing.

Synkroniser til rett tid

I tillegg til å kunne løse konflikter, er det viktig å ha evnen til å kontrollere hvordan systemet synkroniseres. Dette inkluderer replikeringsstrategi, betinget replikering og replikeringsfiltrering. For replikeringsstrategi, se etter støtte for streaming, avstemning, engangs, kontinuerlig og push. Du bør også ha muligheten til å bruke en kombinasjon av disse strategiene. For betinget replikering må du kanskje replikere data bare under visse forhold, for eksempel når enheten har Wi-Fi eller når den har tilstrekkelig batteristrøm. For replikeringsfiltrering, bør du ha muligheten til å replikere noen data, men ikke andre data.

Synkroniser med de rette partisjonene

Konfigurerbar støtte for synkroniseringstopologi er nødvendig for at du skal kunne oppfylle partisjonskravene dine. Med andre ord trenger du muligheten til å konfigurere systemet slik at visse deler kan fungere offline. Den vanligste topologien er stjerne. I en stjernetopologi er hver enhet koblet til et sentralt hub ved hjelp av en punkt-til-punkt-tilkobling som gjør at enhetene kan operere offline. Andre vanlige topologier som tre og maske gjør at forskjellige deler av systemet (i tillegg til enhetene) kan fungere offline. Du vil kanskje også ha støtte for skyfrie topologier som lar enheter kommunisere peer-to-peer og direkte synkronisere data mellom seg.

Et POS-system (salgssted) er et godt eksempel på tretopologi. POS-systemer krever at en mursteinbutikk fortsetter å fungere hvis den kobles fra resten av systemet. I denne konfigurasjonen vil POS-enheter synkronisere med en database på butikknivå, som vil synkronisere med et globalt system. Dermed kan butikker fortsette å operere og synkronisere data med sine POS-enheter uavhengig av tilkobling til det globale systemet.

Enten å bygge synkronisering eller kjøpe

Når du ønsker å legge til synkronisering i appene dine, må du avgjøre om du skal lage en løsning eller få den fra en leverandør. Å bygge synkronisering riktig er notorisk vanskelig og dyrt, da det må håndtere alle kompleksitetene i distribuert databehandling. For de fleste apper vil du ha det bedre å overlate datasynkronisering til en spesialstabel og fokusere på appfunksjonene dine. Nøkkelen er å velge en løsning som er fleksibel. Hvis du går nedover banen, må du være klar til å bruke en betydelig del av tiden og ressursene dine på å bygge synkronisering og støtte alt som er oppført ovenfor.

Når du velger en mobil synkroniserings- og lagringsleverandør, vil det være viktig å ta fullt mål av kriteriene ovenfor for å bygge sikre, fleksible og håndterbare mobilapper som alltid fungerer — med eller uten en internettforbindelse.

Wayne Carter er sjefarkitekt for mobil i Couchbase, hvor han er ansvarlig for å lede visjon, strategi og utvikling for selskapets mobile løsninger. Før Couchbase tilbrakte Wayne syv år i Oracle som arkitekten som var ansvarlig for å drive mobil innovasjon innen CRM og SaaS produktlinjer. Han har 11 patenter på ventetiden fra sitt arbeid i Oracle. Før Oracle hadde Wayne tekniske lederstillinger i Siebel og jobbet med sin CRM-produktlinje.

New Tech Forum er et sted for å utforske og diskutere ny teknologi i enestående dybde og bredde. Valget er subjektivt, basert på vårt valg av teknologiene vi mener er viktige og av størst interesse for leserne. godtar ikke markedsføringssikkerhet for publisering og forbeholder seg retten til å redigere alt bidratt innhold. Send alle henvendelser til [email protected].

$config[zx-auto] not found$config[zx-overlay] not found