Översikt över acceleratorn för fjärrövervakningslösning
Acceleratorn Fjärrövervakningslösning implementerar en övervakningslösning från slutpunkt till slutpunkt för flera datorer på fjärrplatser. I lösningen kombineras viktiga Azure-tjänster till en allmän implementering av affärsscenariot. Du kan använda lösningen som startpunkt för en egen implementering och anpassa den efter dina egna affärsbehov.
Den här artikeln vägleder dig genom några av de viktigaste elementen i fjärrövervakningslösningen så att du kan förstå hur den fungerar. Med den här kunskapen kan du sedan:
- Felsöka problem i lösningen.
- Planera hur lösningen kan anpassas för att uppfylla dina behov.
- Utforma en egen IoT-lösning som använder Azure-tjänster.
Acceleratorkoden för fjärrövervakningslösningen är tillgänglig på GitHub:
Logisk arkitektur
I följande diagram beskrivs de logiska komponenterna i acceleratorn Fjärrövervakningslösning överlagrad i IoT-arkitekturen:
Varför mikrotjänster?
Molnarkitekturen har utvecklats sedan Microsoft släppte de första lösningsacceleratorerna. Mikrotjänster har vuxit fram som en beprövad metod för att uppnå skala och flexibilitet utan att offra utvecklingshastigheten. Flera Microsoft-tjänster använder det här arkitekturmönstret internt med bra tillförlitlighet och skalbarhetsresultat. De uppdaterade lösningsacceleratorerna omsätter dessa lärdomar i praktiken så att du också kan dra nytta av dem.
Tips
Läs mer om arkitekturer för mikrotjänster i .NET Application Architecture (.NET-programarkitektur) och Microservices: An application revolution powered by the cloud (Mikrotjänster: En programrevolution som drivs av molnet).
Enhetsanslutning
Lösningen innehåller följande komponenter i enhetsanslutningsdelen av den logiska arkitekturen:
Verkliga enheter
Du kan ansluta verkliga enheter till lösningen. Du kan implementera beteendet för dina simulerade enheter med hjälp av Azure IoT-enhets-SDK:er.
Du kan etablera verkliga enheter från instrumentpanelen i lösningsportalen.
Mikrotjänst för enhetssimulering
Lösningen innehåller mikrotjänsten för enhetssimulering som gör att du kan hantera en pool med simulerade enheter från lösningsportalen för att testa flödet från slutpunkt till slutpunkt i lösningen. De simulerade enheterna:
- Generera enhet-till-moln-telemetri.
- Svara på metodanrop från moln till enhet från IoT Hub.
Mikrotjänsten tillhandahåller en RESTful-slutpunkt där du kan skapa, starta och stoppa simuleringar. Varje simulering består av en uppsättning virtuella enheter av olika typer som skickar telemetri och svarar på metodanrop.
Du kan etablera simulerade enheter från instrumentpanelen i lösningsportalen.
IoT Hub
IoT-hubben matar in telemetri som skickas från både de verkliga och simulerade enheterna till molnet. IoT-hubben gör telemetrin tillgänglig för tjänsterna i IoT-lösningens serverdel för bearbetning.
IoT Hub ansvarar även för följande uppgifter i lösningen:
- Underhåller ett identitetsregister som lagrar ID:t och autentiseringsnycklarna för alla enheter som tillåts ansluta till portalen.
- Anropar metoder på dina enheter för lösningsacceleratorns räkning.
- Att underhålla enhetstvillingar för alla registrerade enheter. De egenskapsvärden som rapporteras av en enhet lagras i enhetstvillingen. De önskade egenskaper som anges i lösningsportalen och som enheten ska hämta vid nästa anslutning lagras också där.
- Att schemalägga jobb där egenskaper ska anges för flera enheter eller där metoder ska anropas på flera enheter.
Databearbetning och analys
Lösningen innehåller följande komponenter i databearbetnings- och analysdelen av den logiska arkitekturen:
mikrotjänst för IoT Hub chef
Lösningen innehåller mikrotjänsten IoT Hub manager för att hantera interaktioner med din IoT-hubb, till exempel:
- Skapa och hantera IoT-enheter.
- Hantera enhetstvillingar.
- Anropa metoder på enheter.
- Hantera IoT-autentiseringsuppgifter.
Den här tjänsten kör också IoT Hub frågor för att hämta enheter som tillhör användardefinierade grupper.
Mikrotjänsten tillhandahåller en RESTful-slutpunkt för att hantera enheter och enhetstvillingar, anropa metoder och köra IoT Hub frågor.
Mikrotjänst för enhetstelemetri
Mikrotjänsten för enhetstelemetri tillhandahåller en RESTful-slutpunkt för läsåtkomst till enhetstelemetri som lagras i Time Series Insights. RESTful-slutpunkten möjliggör även CRUD-åtgärder för regler och läs-/skrivåtkomst för larmdefinitioner från lagring.
Mikrotjänst för lagringskort
Mikrotjänsten för lagringskort hanterar nyckel/värde-par, abstraherar lagringstjänstsemantiken och presenterar ett enkelt gränssnitt för att lagra data i valfritt format med hjälp av Azure Cosmos DB.
Värden ordnas i samlingar. Du kan arbeta med enskilda värden eller hämta hela samlingar. Komplexa datastrukturer serialiseras av klienterna och hanteras som enkel textnyttolast.
Tjänsten tillhandahåller en RESTful-slutpunkt för CRUD-åtgärder på nyckel/värde-par. values
Azure Cosmos DB
Distributioner av lösningsacceleratorer använder Azure Cosmos DB för att lagra regler, aviseringar, konfigurationsinställningar och all annan kall lagring.
Azure Stream Analytics Manager-mikrotjänst
Azure Stream Analytics Manager-mikrotjänsten hanterar Azure Stream Analytics-jobb (ASA), inklusive att ange deras konfiguration, starta och stoppa dem och övervaka deras status.
ASA-jobbet stöds av två referensdatauppsättningar. En datauppsättning definierar regler och en definierar enhetsgrupper. Regelreferensdata genereras från den information som hanteras av enhetens telemetrimikrotjänst. Azure Stream Analytics Manager-mikrotjänsten omvandlar telemetriregler till dataströmbearbetningslogik.
Referensdata för enhetsgrupper används för att identifiera vilken grupp av regler som ska tillämpas på ett inkommande telemetrimeddelande. Enhetsgrupperna hanteras av konfigurationsmikrotjänsten och använder Azure IoT Hub frågor för enhetstvillingar.
ASA-jobben levererar telemetrin från de anslutna enheterna till Time Series Insights för lagring och analys.
Azure Stream Analytics
Azure Stream Analytics är en motor för händelsebearbetning som gör att du kan undersöka stora mängder data som strömmas från enheter.
Azure Time Series Insights
Azure Time Series Insights lagrar telemetrin från de enheter som är anslutna till lösningsacceleratorn. Det möjliggör även visualisering och frågekörning mot enhetstelemetri i lösningens webbgränssnitt.
Konfigurationsmikrotjänst
Mikrotjänsten configuration tillhandahåller en RESTful-slutpunkt för CRUD-åtgärder på enhetsgrupper, lösningsinställningar och användarinställningar i lösningsacceleratorn. Det fungerar med lagringskortets mikrotjänst för att bevara konfigurationsdata.
Mikrotjänst för autentisering och auktorisering
Mikrotjänsten för autentisering och auktorisering hanterar de användare som har behörighet att komma åt lösningsacceleratorn. Användarhantering kan utföras med valfri identitetstjänstleverantör som stöder OpenId Connect.
Azure Active Directory
Distributioner av lösningsacceleratorer använder Azure Active Directory som OpenID Connect-provider. Azure Active Directory lagrar användarinformation och tillhandahåller certifikat för att verifiera JWT-tokensignaturer.
Presentation
Lösningen innehåller följande komponenter i presentationsdelen av den logiska arkitekturen:
Webbanvändargränssnittet är ett React Javascript-program. Programmet:
- Använder endast Javascript React och körs helt i webbläsaren.
- Är formaterad med CSS.
- Interagerar med offentliga mikrotjänster via AJAX-anrop.
Användargränssnittet visar alla funktioner för lösningsacceleratorn och interagerar med andra mikrotjänster, till exempel:
- Mikrotjänsten för autentisering och auktorisering för att skydda användardata.
- Mikrotjänsten IoT Hub manager för att lista och hantera IoT-enheter.
Användargränssnittet integrerar Azure Time Series Insights explorer för att aktivera frågor och analys av enhetens telemetri.
Med konfigurationsmikrotjänsten kan användargränssnittet lagra och hämta konfigurationsinställningar.
Nästa steg
Om du vill utforska källkoden och utvecklardokumentationen börjar du med någon av de två GitHub-lagringsplatserna:
- Lösningsaccelerator för fjärrövervakning med Azure IoT (.NET).
- Lösningsaccelerator för fjärrövervakning med Azure IoT (Java).
Detaljerade lösningsarkitekturdiagram:
Mer konceptuell information om acceleratorn fjärrövervakningslösning finns i Anpassa lösningsacceleratorn.