Platforma/Chmura IoT/IIoT (Internet Rzeczy) oraz IoE (Internet Wszechrzeczy)
Platforma IoE/IoT
IoT - Internet Rzeczy (Chmura platforma dekykowana tylko dla produktów i aplikacji
iSys - Intelligent Systems) tj. Systemów @City, eHouse, bramek komunikacyjnych, produktów franchyzowych, re-brandingu
IoE - Internet Wszechrzeczy (Dedykowane Mini-Chmury dla indywidulanych partnerów i ich aplikacji)
- Niskopoziomowe oprogramowanie serwerowe napisane w języku "C" (binarne/egzekucyjne) - zapewnia:
- Konfiguracja zaszyta w aplikacji w celu zwiększenia bezpieczeństwa i wydajności
- Bezpieczna aplikacja binarna zabezpieczona przed złamaniem algorytmu, przeniesieniem do innych lokalizacji.
- Więcej niż 5 razy zmniejszenie zużycia pamięci w porównaniu do innych języków programowania dla oprogramowania serwerowego
- Więcej niż 15 razy większa wydajność w porównaniu do rozwiązań serwerowych napisanych w innych językach programowania
- Brak interpretowanych skryptów "otwartego-kodu" źródłowego
- Platforma IoT/IoE może pracować na komputerach i mikrokomputerach z systemem operacyjnym Linux (Debian, Raspbian, Ubuntu):
- W centrum danych (DC) - VPS (minimum 1 virtualny rdzeń procesora i 2GB RAM) lub dedykowane serwery. Wiele lokalizacji DC i wariantów sprzętowych komputerów.
- Lokalnie - na mikrokomputerach (ARM, Raspberry Pi 3,4, Tinker Board) i komputerach PC (Intel/AMD x64, x86)
- Dane przesyłane binarnie (minimalizujący rozmiar payloadu/pakietu i ogólny rozmiar danych przesyłanych przez medium transmisyjne.
- Umożliwia komunikację przez LTE NBIoT (NB1/NB2) oraz LoRaWAN gdzie występują bardzo duże ograniczenia odnośnie wielkości pakietów i ilości przesyłanych danych.
- Wielokrotna minimalizacja zużycia baterii podczas transmisji dzięki znacznie krótszym paczkom danych.
- Dwukierunkowa transmisja z potwierdzeniami (ACK):
- Serwer => Urządzenie (ACK, komendy sterujące, konfiguracja)
- Urządzenie => Serwer (statusy, komendy sterujące, logi, ACK)
- Zabezpieczenia przeciwko atakom:
- Czasowe zablokowanie lub ignorowanie adresu IP urządzeń atakujących - wykrywane na podstawie wielokrotnych błędnych autoryzacji, powtórzonych lub błędnych pakietów
- "Przeskakiwanie" na przypadkowy numer portu UDP dla wielokrotnych transmisji z tym samym urządzeniem
- Różne rodzaje komunikacji: UDP, TCP lub HTTP
- Wykorzystanie ogólnie znanych systemów bazodanowych (DB) MySQL lub MariaDB dla zapisu danych
- Niezależne bramki komunikacyjne z bezpośrednim dostępem do baz danych dla zapewnienia stabilności, operacyjności, wydajności:
- UDP <=> DB
- HTTP <=> DB
- TCP <=> DB
- Opcjonalne buforowanie (cache) danych w plikach dla zapewnienia 100% przechwycenia danych.
- Dane są szyfrowane zgodnie z protokołem IoT/IoE, z indywidualną tabelą szyfrującą dla każego partnera.
- Opcjonalnie dostarczamy kompletne urządzenia IoT "Node" dla partnerów do bezpośredniej łączności z chmurą IoT/IoE do komunikacji, szyfrowania, weryfikacji, dla wielu interfejsów komunikacyjnych (WiFi, Ethernet, GSM, LoRaWAN, itd.).
- Opcjonalnie dostarczamy bramki pozwalające na bezpośrednią łączność z chmurą IoT/IoE dla głównych interfejsów komunikacyjnych (UART/RS232/RS485/RS422,CAN, RF, IR, BlueTooth/BLE, SPI/I2C)
- Opcjonalnie dostarczamy bramki pozwalające na bezpośrednią komunikację z chmurą IoT/IoE dla głównych protokołów wykorzystanych w automatyce (BACNet, MQTT, Modbus, DMX, Dali, standardy podczerwieni IR)
Protokół IoE/IoT:
- Niezależność od protokołów i interfejsów komunikacyjnych (szyfrowanie + sprawdzenie danych)
- Dane binarne i tekstowe
- Mały wzrost payload'u danych do transmisji po zaszyfrowaniu
- Dostarczony kod źródłowy w języku "C" dla mikrokontrolera (urządzeń "Nodes") dla każdego partnera po podpisaniu umowy zachowania tajemnicy NDA i wykupienia Licencji.
- Wykorzystanie unikalnej i rotacyjnej tabeli szyfrowania (do 1024 Bytów) dla każdego partnera/aplikacji
- Użycie podwójnej sumy kontrolnej (dla zaszyfrowanych i niezaszyfrowanych danych) do szybkiego sprawdzenia poprawności danych
- Użycie wielopoziomowego algorytmu szyfrowania/deszyfrowania i weryfikacji danych
- Znacznik czasu do ustawienia zegara, synchronizacji czasu, wykrycia pakietów powtórzonych, rozłożenia w czasie statusów przesyłanych z bardzo dużej ilości sterowników
- Wykorzystanie dynamicznie zmienianego algorytmu do autoryzacji danych (zależne między innymi od znacznika czasu, typu urządzenia, unikalnego adresu, licznika transmisji)
Platforma @City IoT Back-End/Front-End