För att förstå hur nätverksförhållanden påverkar prestandan hos inbyggda system och Internet of Things (IoT)-applikationer, måste vi ta hänsyn till ett antal faktorer som påverkar den överförda dataflödet och kommunikationshastigheten. I de flesta fall kan nätverkskommunikationen förutses om den begränsas till ett inbyggt system, men när dessa system integreras med IoT och måste kommunicera över bredare nätverk som internet, blir förutsägelser om paketförluster och fördröjningar betydligt mer komplexa.

En grundläggande faktor som påverkar överföringstid är den kapacitet och hastighet som varje kanal i nätverket erbjuder. Om ett paket går genom flera hopp eller noder på vägen från avsändare till mottagare, kan varje mellanliggande nod orsaka en viss fördröjning beroende på dess bearbetningstid. Speciellt när det gäller routrar som bearbetar inkommande meddelanden, är det svårt att exakt förutse hur lång tid det tar för ett paket att passera genom en router, eftersom dessa ofta sätter meddelanden i kö och nya paket kan komma till en router innan tidigare paket har bearbetats.

Detta fenomen är ännu mer komplicerat när vi talar om trådlösa nätverk, där signalstörningar från andra elektriska apparater eller fulla routerköer kan orsaka att paket antingen förloras eller dupliceras. Förlorade paket kan orsakas av flera faktorer, såsom elektriska störningar som påverkar radiosignalen, eller när en router är överbelastad och inte kan ta emot fler paket. En annan orsak kan vara att ett paket aldrig når fram till mottagaren för att en nod misslyckas innan paketet vidarebefordras. I motsats till detta kan ett paket dupliceras under överföringen om flera noder i ett nätverk sänder samma paket vidare, vilket resulterar i att mottagaren får samma paket flera gånger. Detta kan orsaka problem för applikationer som är känsliga för redundans.

I denna kontext är begrepp som "leveranskvot" (delivery ratio), "paketförlustkvot" (packet loss ratio) och "återöverföringshastighet" (retransmission rate) viktiga att förstå. Leveranskvoten anger förhållandet mellan de mottagna paketen och de skickade paketen, utan att inkludera duplicerade paket. Paketförlustkvoten beskriver hur stor del av paketen som går förlorade under överföringen, medan retransmissionshastigheten anger hur ofta paket skickas om. För system som har realtidskrav, såsom trafikstyrning eller kollisionsundvikande applikationer, kan fördröjningar vara lika allvarliga som förlorade paket. Om ett meddelande förloras eller inte levereras i tid, kan konsekvenserna bli katastrofala, vilket innebär att systemet inte kan utföra sitt syfte korrekt.

För att hantera dessa utmaningar måste ingenjörerna bakom inbyggda system och IoT-applikationer noggrant överväga hur mycket paketförlust som kan tolereras innan systemets funktionalitet faller under en acceptabel nivå. I vissa tillämpningar, såsom övervakning av markförhållanden på en stor gård, kan små förluster i data vara acceptabla, särskilt om förlorade data kan uppskattas utifrån omgivande information. Detta innebär att systemets design måste kunna hantera ett visst mått av dataförlust, samtidigt som den upprätthåller den övergripande funktionaliteten.

En annan viktig aspekt är batteridriven nätverkskommunikation, där noder inte är konstant anslutna till strömförsörjning. Här behöver ingenjörerna tänka på hur många nodförluster som systemet kan hantera innan informationsöverföring inte längre är tillräcklig. Eftersom många IoT-applikationer är beroende av trådlös kommunikation, måste man överväga faktorer som batterikapacitet, energiutvinningsteknik och nätverksstruktur för att minimera risken för dataförlust och upprätthålla nätverksfunktionalitet.

När nätverksstruktur och noders kapacitet inte är optimalt designade kan det leda till ineffektiv kommunikation och ytterligare fördröjningar. IoT-applikationer kan dra nytta av att noggrant analysera dessa aspekter och bygga robusta system som fungerar under varierande förhållanden.

Endtext

Vilka faktorer måste beaktas vid design av inbyggda system med hjälp av molntjänster?

När man designar inbyggda system är det viktigt att överväga de olika valmöjligheter och utmaningar som kan uppstå vid användning av molntjänster. Dessa system samlar ofta in känslig data och används för att utföra beräkningar eller hantera kommunikation mellan flera enheter. En vanlig metod är att integrera molntjänster för att förbättra systemets prestanda och minska behovet av lokal infrastruktur.

En av de främsta fördelarna med att använda molnet är att det möjliggör bättre säkerhet. Molnleverantörer investerar ofta mycket i säkerhet och erbjuder avancerade lösningar för att skydda data, vilket kan vara en utmaning för små designföretag att åstadkomma på egen hand. För inbyggda system som hanterar känslig data, som till exempel hälsodata, innebär användningen av molnet att många av säkerhetsaspekterna kan hanteras på en central nivå, vilket minskar behovet av att bygga in avancerade säkerhetslösningar i själva enheten.

En annan fördel är den globala åtkomsten till data. För företag med kontor på flera geografiska platser, som t.ex. internationella organisationer eller större företag, kan användningen av molnlagring möjliggöra enkel delning och åtkomst till data. Ett bra exempel är system som samlar in data från patientövervakning, där informationen kan användas av organisationer som Världshälsoorganisationen (WHO) eller Centers for Disease Control and Prevention (CDC). Den här typen av lösning gör det möjligt för olika aktörer att snabbt och effektivt använda och dela relevant data.

Molnet gör också att designteam kan fokusera mer på applikationen snarare än på själva infrastrukturen. En design för ett inbyggt system som gör användning av molnberäkningar kan minska den lokala komplexiteten och de fysiska komponenterna i systemet. Detta leder till lägre utvecklingskostnader och en enklare produkt.

Men fördelarna med att använda molntjänster kommer inte utan nackdelar. För det första innebär användningen av molnet kostnader för företagen. Molnleverantörer fakturerar vanligtvis för de resurser som används, och dessa kostnader måste beaktas vid produktens design och den totala utvecklingsbudgeten. Dessutom kan det finnas tidsfördröjningar när molnet används för att bearbeta data i realtid. För inbyggda system som behöver skicka förfrågningar till molnet och vänta på svar, kan det bli ett problem om tidsramen är strikt. Till exempel, medan ett bevattningssystem för en gård inte behöver exakta uppgifter i realtid, skulle ett säkerhetssystem som använder biometriska data för att låsa upp dörrar inte kunna tolerera några större fördröjningar.

En annan viktig fråga är äganderätten av data som skickas till molnet. När data skickas till molnet för bearbetning kan den ursprungliga ägaren av systemet förlora kontrollen över dessa data. Detta kan leda till sekretessproblem och behovet av att noggrant definiera vem som har rätt att använda och bearbeta den insamlade informationen. Vidare kräver anslutning till molnet tillgång till internet. För inbyggda system som inte är anslutna till fasta nätverk innebär det ett behov av trådlös kommunikation, vilket ofta kräver mer energi. Detta kan ställa ytterligare krav på batterilivslängd och strömförsörjning.

När man ser på konkreta exempel, som designen av ett säkerhetssystem för en byggnad, blir det tydligt att de tekniska valen påverkar både kostnader och funktionalitet. Ett grundläggande system, där dörrar bara tillåter ett begränsat antal personer att passera, kan byggas med ett enkelt minneskort, en fingeravtrycksläsare och en billig mikroprocessor. Detta system skulle inte kräva någon extern anslutning och skulle vara kostnadseffektivt. Men när systemet skalas upp för att hantera flera dörrar i en byggnad, krävs en central dator som samlar och bearbetar alla uppgifter från dörrarna, vilket ökar både komplexitet och kostnad. När systemet ska användas av ett större företag med flera byggnader och regionala databaser, krävs en fullständig molntjänst, där lagring och beräkningskraft i molnet kan användas för att hantera stora mängder data och analysera användarbeteenden på en övergripande nivå.

För varje steg i komplexiteten ökar både kostnader och funktionalitet. Designteamet måste noggrant överväga vilka beräkningar som kan utföras i molnet och vilka som måste hanteras lokalt för att uppnå rätt balans mellan prestanda och kostnad. Detta gäller särskilt för funktioner som inte kräver strikt realtidsbearbetning och kan flyttas till molnet för att minska den lokala datorkraften och den fysiska komplexiteten i produkten. För att göra en effektiv bedömning måste designteamet också tänka på vilken typ av molntjänst (IaaS, PaaS, SaaS) som är mest lämplig för det specifika systemet och den lösning som ska utvecklas.

Utöver dessa aspekter bör man tänka på hur systemets design och användning påverkar den långsiktiga hållbarheten och underhållskostnaderna. Genom att utnyttja molnresurser kan man möjliggöra snabb uppdatering och modifiering av systemet utan att behöva fysiskt uppgradera varje enhet, vilket gör det lättare att hålla systemet aktuellt med de senaste teknologierna. Det är också viktigt att förstå att även om molnet erbjuder skalbarhet och flexibilitet, kan det också innebära att man blir beroende av externa tjänsteleverantörer och deras infrastruktur, vilket kan skapa risker relaterade till tillgång och integritet.

Hur kan pålitlighet och felhantering förbättra designen av inbyggda system?

Fel i marktrafikbarriärer kan inträffa av många orsaker: kanske meddelandet från huvudkontrollmodulen inte når fram, motorn brinner ut, strömförsörjningen till motorn förloras eller något blockerar själva barriären. För att effektivisera arbetet vid reparationer kan designteamet förbereda en lista över möjliga fel, kanske ordnade i en sekvens som underlättar felsökning för teknikerna. Dessa fel kan vara interna eller externa. Till exempel kan vissa delar av bro-systemet sluta fungera korrekt. Å andra sidan kan bilar eller fotgängare förbli kvar på bron efter att ljusen och varningsklockan har aktiverats. Vid beteendemodellering är det användbart att beakta båda dessa typer av fel, särskilt för att förstå hur systemet ska bete sig om en användare eller någon annan extern enhet gör något felaktigt, av misstag eller med avsikt.

Felkällor leder inte nödvändigtvis till systemfel eller ens till verkliga fel. Om sensorn som mäter avståndet till en båt exempelvis anger avstånd med en noggrannhet på en fot, men systemet endast tar hänsyn till avstånd på tio fot, kan sensorn bli lätt ur kalibrering eller överföra felaktiga data utan att det påverkar broens funktion. Konsekvenserna av systemfel kan variera från att vara bara obekväma till katastrofala. Om bron inte höjs i tid när en båt närmar sig, kan kaptenen märka att den gröna lampan inte tänds och stoppa båten, vilket leder till störningar i trafiken på floden men inte nödvändigtvis till förlust av liv eller egendom. Däremot, om kaptenen inte ser att bron inte rör sig och kolliderar med den, kan det orsaka materiella skador och eventuellt personskador. Även denna typ av fel kan få en rad olika konsekvenser beroende på situationen.

Om bron höjs när bilar och fotgängare fortfarande är på den – till exempel på grund av ett fel i sensorerna på bron – är det nästan garanterat att det kommer att få allvarliga konsekvenser. Det finns också system där fel inte leder till livshotande konsekvenser. Ett exempel på detta är en bankomat, där en sådan kan orsaka allt från obehag för användaren (som inte får sina pengar och måste gå in i banken) till allvarligare problem som att användarens hela livsbesparingar överförs till fel konto. Designteamet måste noggrant överväga möjliga fel under varje designfas och noga analysera varje fel för att förstå dess sannolikhet och konsekvenser.

För att förstå pålitlighet och relaterade begrepp är det viktigt att känna till formella definitioner som gör det möjligt att analysera systemens funktionalitet. Pålitlighet R(t) för ett system är sannolikheten att det inte inträffar något fel innan en viss tidpunkt t, från när systemet först aktiverades. Tiden mellan två fel (MTBF – Mean Time Between Failures) är ett mått som beaktar både tiden till fel och tiden till reparation. För att kunna arbeta med dessa begrepp på ett effektivt sätt är det viktigt att förstå att dessa definitioner är genomsnitt och sannolikheter, inte exakta förutsägelser för individuella system.

Vid beräkningar av pålitlighet i inbyggda system stöter vi ofta på problem på grund av att dessa system består av många olika subsystem. Varje komponent har en viss känd pålitlighet eller MTTF (Mean Time To Failure), men för att räkna ut den totala pålitligheten för hela systemet krävs mer avancerade tekniker. För moderna inbyggda system, som ofta också inkluderar betydande mjukvarukomponenter, är sådana beräkningar ännu mindre utvecklade. Fel i ett subsystem kan påverka andra subsystem eller inte göra det alls. Ett exempel på detta är ett fel på en strömbrytare som slår på varningsljuset på bron, som troligen inte påverkar andra delar av bro-systemet. Om en strömförsörjning till barriärsystemet däremot går sönder, kan det orsaka skador på elektroniska kretsar i det systemet och göra pålitlighetsberäkningar för dessa komponenter irrelevanta.

För att effektivt använda pålitlighetsmått som R(t) eller MTTF måste designteamet komma ihåg att dessa är genomsnittliga uppskattningar. Ett komponentens MTTF på till exempel 10 000 timmar betyder inte att varje system kommer att fungera korrekt i exakt 10 000 timmar. Vissa kommer att misslyckas tidigare och andra senare. En användbar strategi kan vara att titta på en uppsättning tider till fel eller på annan statistisk information som standardavvikelsen för fel i komponenterna, om sådan information är tillgänglig.

Förutom att förstå dessa grundläggande begrepp är det också viktigt att vara medveten om hur man kan optimera dessa förhållanden i systemdesignen. Ett system med hög pålitlighet innebär inte bara att komponenter och funktioner fungerar som förväntat under lång tid, utan att man har förutsatt och förberett systemet för att hantera eventuella fel på ett effektivt sätt. För att uppnå detta krävs noggrann analys och planering både på system- och komponentnivå.