EdgeX 2.0 er blevet præsenteret, en åben modulær platform til at muliggøre interaktion mellem IoT-enheder, applikationer og tjenester. Platformen er uafhængig af specifikke leverandørhardware og operativsystemer og udvikles af en uafhængig arbejdsgruppe under Linux Foundations vinger. Platformens komponenter er skrevet i Go og distribueres under Apache 2.0-licensen.
EdgeX muliggør oprettelse af gateways, der forbinder eksisterende IoT-enheder og indsamler data fra forskellige sensorer. Gatewayen håndterer både interaktionen med enhederne og udfører den primære behandling, aggregering og analyse af informationen, mens den fungerer som et mellemliggende led mellem netværket af IoT-enheder og det lokale kontrolcenter eller cloud-baserede administrationsinfrastruktur. Der kan også udføres behandlede, der er designet som mikrotjenester. Interaktionen med IoT-enheder kan organiseres via kablede eller trådløse netværk ved hjælp af TCP/IP-netværk og specifikke (ikke-IP) protokoller.

Gateways med forskellige formål kan kædes sammen, for eksempel kan en first-level gateway håndtere enhedsadministration (system management) og sikkerhed, mens en second-level gateway (fog-server) kan gemme de indkommende data, udføre analyser og levere tjenester. Systemet er modulært, så opdelingen af funktionalitet i separate enheder sker afhængigt af belastningen: i simple tilfælde er én gateway tilstrækkelig, men for store IoT-netværk kan der implementeres et helt cluster.

Som grundlag for EdgeX anvendes den åbne IoT-stak Fuse, som bruges i gateways til IoT-enheder som Dell Edge Gateway. Platformen kan installeres på enhver hardware, herunder servere baseret på CPU x86 og ARM, der kører på Linux, Windows eller macOS. Projektet omfatter en samling af færdigbyggede microservices til dataanalyse, sikkerhed, administration og løsning af forskellige opgaver. Til udviklingen af egne microservices kan der anvendes sprog som Java, Javascript, Python, Go og C/C++. Der tilbydes et SDK til udvikling af drivere til IoT-enheder og sensorer.
Vigtige ændringer:
- Der er implementeret et nyt webinterface, skabt med Angular JS-rammeværket. Fordelene ved det nye GUI omfatter enkel vedligeholdelse og udvidelse af funktionalitet, en wizard til tilslutning af nye enheder, værktøjer til visualisering af data, et betydeligt forbedret interface til administration af metadata samt muligheder for monitoring af service-tilstand (hukommelsesforbrug, CPU-belastning osv.).

- API'et til arbejde med microservices er blevet fuldstændig omskrevet, hvilket nu gør det uafhængigt af kommunikationsprotokoller, mere sikkert, velstruktureret (bruger JSON) og bedre til at spore de data, der behandles af servicen.
- Effektiviteten er blevet forbedret, og der er mulighed for at oprette letvægtskonfigurationer. Core Data-komponenten, der er ansvarlig for datalagring, er nu ikke obligatorisk (for eksempel kan den udelades, når der kun er behov for at behandle data fra sensorer uden at skulle gemme).
- Forbedret pålidelighed og udvidet kvalitetssikring af serviceydelser (QoS). Ved dataoverførsel fra enhedernes services (Device Services, som står for indsamling af data fra sensorer og enheder) til applikationsbehandlings- og datalagringstjenester (Application Services) kan der nu anvendes en beskedbus (Redis Pub/Sub, 0MQ eller MQTT), uden at være bundet til HTTP REST-protokollen, og med mulighed for at justere QoS-prioriteter på niveauet for message broker. Der tillades også direkte dataoverførsel fra Device Service til Application Service med valgfri duplikering til Core Data-tjenesten. Understøttelse af dataoverførsel via REST-protokollen er bevaret, men anvendes ikke som standard.

- Implementeret et universelt modul (secret provider) til udtrækning af hemmelige data (passwords, nøgler osv.) fra sikre lagringspladser som Vault.
- Til registrering af tjenester og indstillinger samt håndtering af adgang og autentifikation benyttes værktøjet Consul. API Gateway har støtte til at tilgå Consul API.
- Antallet af processer og tjenester, der kræver root-rettigheder i Docker-containere, er minimeret. Der er tilføjet beskyttelse mod brug af Redis i usikker tilstand.
- Konfigurationen af API Gateway (Kong) er blevet forenklet.
- Device-profilerne, der angiver parametre for sensorer og enheder samt oplysninger om indsamlede data, er blevet forenklet. Profiler kan defineres i YAML- og JSON-formater.

- Nye enhedstjenester er blevet tilføjet:
- CoAP (skrevet i C) med implementering af Constrained Application Protocol.
- GPIO (skrevet i Go) til tilslutning til mikrokontrollere og andre enheder, herunder Raspberry Pi-boards, via GPIO (General Pin Input/Output) porte.
- LLRP (skrevet i Go) med implementering af LLRP (Low Level Reader Protocol) til tilslutning til RFID-læsere.
- UART (skrevet i Go) med støtte til UART (Universal Asynchronous Receiver/Transmitter).
- Mulighederne for applikationsservices (Application Services), der er ansvarlige for forberedelse og eksport af data til efterfølgende behandling i cloud-systemer og applikationer, er blevet udvidet. Der er tilføjet support til filtrering af data fra sensorer baseret på enhedens profilnavn og ressource type. Det er muligt for en service at sende data til flere modtagere og abonnere på flere beskedbusser. Der er foreslået en skabelon til hurtigt at oprette egne applikationsservices.
- De valgte portnumre til mikrotjenester er i overensstemmelse med de intervaller, der anbefales af IANA (Internet Assigned Numbers Authority) til privat brug, hvilket vil forhindre konflikter med eksisterende systemer.
Kilde: opennet.ru



