Jaka jest najlepsza praktyka zapewniająca pomyślną aktualizację urządzenia IoT?
Co musisz zrobić, aby przetestować aktualizacje OTA i uwierzytelnić urządzenia? Idąc krok dalej, w jaki sposób możesz monitorować / zarządzać wersjami oprogramowania (aktualizacjami) floty urządzeń IoT?
testing
authentication
over-the-air-updates
Noam Hacker
źródło
źródło
Odpowiedzi:
Mam oprogramowanie (Windows Server - trochę inne niż „rzeczy”, ale główny jest taki sam), który wywołuje co 24 godziny - odsyła różne metadane o sobie:
Usługa internetowa analizuje dane i wstawia (lub aktualizuje, jeśli klient ma istniejący wiersz) wiersz w bazie danych.
W ten sposób nowy klient jest automatycznie dodawany do bazy danych, dotychczasowi klienci aktualizują swój znacznik czasu „ostatnio widziany” i zawsze mamy najnowszą wersję oprogramowania. Mogę uruchamiać zapytania DB, które mówią mi, którzy klienci są w starszych wersjach i / lub którzy nie dzwonili przez jakiś czas.
Niedawno wdrożyliśmy również automatyczną aktualizację (pomyśl aktualizację OTA), a ponieważ jest to proces krytyczny, wdrożyliśmy w tym celu określoną telemetrię - rejestrującą:
To pozwala nam ustalić, czy niektóre aspekty automatycznej aktualizacji zawodzą, aw wielu przypadkach pozwala nam często dzwonić do klienta, zanim nawet zauważy, że coś jest nie tak.
Dużą różnicą w przypadku „rzeczy” jest to, że zazwyczaj masz ograniczoną pamięć, więc aby wykonać aktualizację
xxx Kb
oprogramowania układowego OTA , potrzebujeszxxx Kb * 2
dostępnej pamięci (istniejące oprogramowanie + wystarczająca pamięć do przechowywania nowego oprogramowania przed rozpoczęciem faktycznej aktualizacji oprogramowania)źródło
thing
pewnie prawdopodobnie flashowałbym diodę LED lub coś, aby ostrzec użytkownika (zakładając, że chcesz, aby użytkownik „zezwolił” na aktualizację), a następnie niech przytrzyma przycisk „długo”, aby go uruchomić ...Możesz na przykład składać żądanie co X tygodni / dni / godzin ... na serwer z bieżącym numerem wersji oprogramowania. Po tym będziesz mógł korzystać z danych analitycznych, aby zobaczyć aktualny odsetek i liczbę zaktualizowanych urządzeń.
źródło
Chodzi o inteligentną politykę synchronizacji
Potrzebujesz inteligentnej zasady synchronizacji, która działa razem z podejściem do wdrażania aktualizacji. Najbardziej oczywistym momentem, w którym urządzenie IoT powinno zsynchronizować swoją wersję, jest bezpośrednio po aktualizacji . Reszta harmonogramu synchronizacji jest wysoce zależna od typu urządzenia.
Czy zawsze jest włączony i podłączony za pomocą połączenia kablowego, w którym pojedyncza synchronizacja nie kosztuje (dużo), warto okresowo synchronizować, aby utrzymać aktualność danych o urządzeniu.
Jeśli urządzenie gdzieś było, wszystko było kosztowne, ponieważ korzystasz z drogich połączeń satelitarnych, harmonogram synchronizacji musi uwzględniać tę okoliczność.
Weryfikacja synchronizacji
W wystarczająco zaawansowanym urządzeniu (przeczytaj przedział cenowy lub obszar działania, który to uzasadnia) każde urządzenie może być wyposażone w certyfikat klienta, który umożliwia sprawdzenie autentyczności synchronizacji.
W każdym razie w przypadku urządzeń końcowych zawsze będziesz mieć urządzenia spadające z radaru z powodu wyczerpujących się baterii, urządzenia, które nie działają lub po prostu klient zmienia hasło sieci bezprzewodowej i nie informuje urządzenia IoT. Mogą one nie musieć nic robić z twoją aktualizacją, nawet jeśli są zbieżne czasowo.
źródło