Proč oddělená skriptovací vrstva dává uživatelům větší kontrolu, zkracuje vývoj a chrání duševní vlastnictví
Jedním z častých problémů při nasazení IoT zařízení do reálného provozu je nutnost upravovat firmware pokaždé, když zákazník potřebuje něco specifického. Ať už jde o jinou frekvenci odečtů, práci s proprietárním protokolem nebo třeba úpravu způsobu filtrování dat, každá taková změna zpravidla znamená novou verzi firmware, nové testování a často i fyzické nahrávání do zařízení. Takový přístup není dlouhodobě udržitelný – zvlášť pokud zařízení provozujete ve stovkách nebo tisících kusů a chcete nasazovat pořád stejnou, otestovanou verzi zařízení.
Jedním z osvědčených způsobů, jak se tomuto scénáři vyhnout, je využití řešení za pomoci skriptu. Jinými slovy: nechat hlavní logiku zařízení na firmwaru a zároveň umožnit, aby se konkrétní chování dalo upravovat skriptem, oddělenou vrstvou, která zůstává mimo hlavní systémové funkce, ale může je ovlivňovat. Můžete si řešení představit jako API konektor nad softwarovým řešením, kdy s ním můžete pracovat i jiným, než běžným způsobem (například přes grafické rozhraní), ale neriskujete zanesení kritického bugu do samotného softwaru.
V ACRIOS zařízeních pracujeme se třemi softwarovými vrstvami
- Zavaděč (neboli boot loader) pouští zařízení. Umožňuje zařízení bezpečně nastartovat a taktéž obstarává v případě nutnosti aktualizaci vrstvy nadřazené, tedy firmwaru
- Firmware je řídící program. Obstarává všechny funkcionality zařízení, taktéž provádí akce vyžadované vrstvou uživatele.
- Skript je nejvyšší vrstva, která vykonává akce definované vyžadované uživatelem. Je to vlastně program v programu, kdy firmware má své API a v rámci skriptu voláme už konkrétní funkce.
Skript je napsán v jednoduchém, ale výkonném jazyce, v našem případě Lua, a jeho cílem je dát zákazníkovi kontrolu, bez nutnosti zasahovat do systémových vrstev. Díky tomu lze už ve výrobě do každého zařízení nahrát jiný skript podle toho, pro jakého zákazníka je určené. Zařízení tak může být fyzicky stejné, ale chovat se zcela jinak – a bez nutnosti dalších kroků ze strany zákazníka při nasazení.
To ale není jediný přínos. Skriptování dává zákazníkovi možnost reagovat rychle na změnu požadavků, prostředí nebo třeba legislativy. Změní se intervaly odečtů? Potřebujete jiný formát dat? Nový export? To vše je možné provést změnou skriptu, ať už přímo v terénu nebo na dálku. Firmware zůstává nedotčený, testování je výrazně jednodušší a vývojový cyklus kratší.
Skriptování a ochrana know how
Skriptování má zásadní výhodu i z hlediska ochrany know-how. Představte si situaci, kdy si zákazník u výrobce objedná specifické chování zařízení, které vyžaduje rozsáhlý vývoj. Pokud je taková logika implementovaná přímo do firmware, často ji výrobce po čase použije i jinde, ať už znovu prodá jinému zákazníkovi, nebo ji začne nabízet jako součást produktu. Výsledkem je, že know-how, do kterého zákazník investoval, se rozptýlí a jeho konkurenční výhoda zmizí.
V případě skriptovaných zařízení má zákazník možnost si nechat skript vytvořit na míru a chránit jej například heslem nebo přístupovým právem. Získá tak unikátní funkcionalitu, která zůstává jen jeho, nikdo další se k ní bez jeho svolení nedostane. I to je jeden z důvodů, proč řada partnerů skriptování vyžaduje jako standard.
Nemusíte se přitom bát, že by skriptování znamenalo nutnost programovat. Naopak – ideální je, pokud výrobce připraví skript na míru a zákazník má možnost jej upravovat přes přívětivé rozhraní. Na takovém prostředí pracujeme i my v ACRIOS, aby si naši zákazníci mohli nastavení skriptu přizpůsobit bez nutnosti znalosti každého řádku kódu. A pokud máte technické zázemí nebo tým, který si chce skripty psát sám, i zde nabízíme plnou podporu a otevřený přístup. Věříme, že jako vlastník zařízení byste měli mít i možnost plně rozhodovat o tom, co přesně vaše zařízení dělá.
Často kladené otázky o skriptování v IoT zařízeních
K čemu je skriptování v IoT zařízeních dobré?
Skriptování umožňuje měnit chování zařízení bez nutnosti upravovat firmware. Díky tomu lze nasazovat stejné zařízení pro různé zákazníky a upravit jeho funkci až v poslední chvíli – lokálně nebo na dálku.
Jaký jazyk se používá pro skriptování?
V našich zařízeních používáme jazyk Lua. Je jednoduchý, čitelný a přitom dostatečně výkonný pro řízení chování zařízení bez zásahu do hlavního systému.
Mohu si skript upravit sám?
Ano, nabízíme plnou dokumentaci a podporu pro pokročilé uživatele. Zároveň ale pracujeme na uživatelsky přívětivém rozhraní, které umožní úpravy i bez znalosti kódu.
Je skript chráněný proti zneužití?
Ano, skript lze chránit heslem nebo přístupovým oprávněním. Díky tomu zůstává specifické chování zařízení ve vlastnictví zákazníka a není snadno zneužitelné třetí stranou.
Zůstává firmware neměnný?
Ano, hlavní systémová logika zůstává stabilní. Veškeré změny probíhají v oddělené vrstvě – skriptu. To zajišťuje rychlejší vývoj, jednodušší testování a nižší riziko chyb.
Kde najdu dokumentaci k API?
Kompletní dokumentace je dostupná zde.
Chcete vlastní logiku bez zásahu do firmware? Skriptování vám umožní plně ovládnout chování zařízení – bez kompromisů. Ozvěte se nám, pokud chcete otestovat vlastní nasazení nebo získat konzultaci k možnostem skriptování.