Pytanie: Jaka jest podstawowa koncepcja „Embedded Agent” w odniesieniu do urządzeń brzegowych o niskiej mocy Internetu Rzeczy (IoT)?
Niektórzy dostawcy usług w chmurze IoT powołują się na instalację agenta osadzonego w urządzeniach brzegowych opartych na czujnikach. Wygląda na to, że jest to zastrzeżone oprogramowanie, które producenci instalują na każdym urządzeniu łączącym się z chmurą. Poniżej znajdują się dwa obrazy stosów oprogramowania z odniesieniami do Agenta . Część stosu oprogramowania znajduje się w mikrokontrolerze.
Również tutaj jest bardzo szerokie wyjaśnienie blog Thingworx
Agent to program osadzony, który działa na urządzeniu IoT lub w jego pobliżu i zgłasza stan niektórych zasobów lub środowiska. W aplikacji IoT zawsze występuje agent. Zwykle agent odczytuje stan z czujników lub lokalnej łączności z zasobem, stosuje pewne reguły lub logikę dotyczącą tego, jak często nadawca musi agregować informacje, a następnie wysyła je za pośrednictwem sieci komunikacyjnej dalekiego zasięgu do serwera. Ten proces może również działać odwrotnie.
Zakładam, że agent ten składa się z informacji o łączności, takich jak adres IP, nazwa serwera, informacje o typie SSID w celu ułatwienia łączności. Czy te agenty osadzone mają inne funkcje poza zapewnianiem łączności?
Bibliografia:
źródło
Odpowiedzi:
Ogólnie rzecz biorąc, agent jest oprogramowaniem „dwukierunkowym”; tzn. odczytuje parametry z urządzenia i komunikuje to samo z chmurą, a nawet bramą. Najczęściej producent OEM kontroluje biblioteki w celu opracowania oprogramowania do sterowania parametrami urządzenia. Natomiast producent OEM może wybrać dowolny z popularnych protokołów komunikacyjnych (MQTT, HTTP itp.), Aby opublikować odczytane wartości. Zazwyczaj integracja tych dwóch jest przestrzenią, w której wchodzi integrator systemów.
Na przykład agent może działać na pulpicie systemu Windows, aby odczytywać obroty wentylatora co 5 sekund. Ta wartość jest następnie przekazywana do platformy chmurowej za pomocą uzgodnionego protokołu.
Przykładowy kod z PAHO MQTT (Python) stronie internetowej :
Powyższy fragment kodu jest z grubsza agentem, ponieważ istnieje część „z urządzenia” w postaci funkcji,
sensor.blocking_read()
a część „do chmury” w postaci amqttc.publish()
.Zaawansowani agenci będą mieli mechanizmy do obsługi pamięci offline, obsługę TLS do komunikacji w chmurze, wdzięczne reagowanie na wszelkie aktualizacje z chmury (w tym ponowne uruchamianie, w razie potrzeby) itp. A w konkretnym przypadku tego pytania agent poradzi sobie z ograniczeniami mocy zbyt. Na przykład reaguj na wyzwalacze poziomu urządzenia, takie jak sen, budzenie itp.
źródło