Linksoft

BoxNow – Vzdálené ovládání rostoucí sítě doručovacích boxů

Případové studie 18. 10. 2022 7 minut

Realizace:

2022

Klient:

EMMA Capital

EMMA Capital je soukromý investiční holding, který se zaměřuje především na řízení a rozvoj společností napříč sektory na trzích především v Evropské Unii, ale i dalších trzích v Evropě a Asii. LinkSoft oslovila v rámci projektu vybudování logistické sítě automatizovaných boxů pro doručování balíčků v Řecku a okolních zemích.

Řešení logistiky pro stále populárnější e-commerce 

Popularita e-commerce raketově stoupá po celém světě. Ne všude ji provází rozvoj souvisejících služeb, zejména doručování. Myšlenkou BoxNow bylo dodat řešení logistiky doručování zásilek v Řecku a okolních zemích, kde (na rozdíl od Česka, které má funkční síť doručovacích boxu firmy Alza a dalších), podobná služba neexistovala a doručení balíčku mohlo trvat i několik pracovních dní

EMMA Capital proto chtěla ve velmi krátké době vybudovat síť nepřetržitě dostupných solárně napájených schránek umožňujících dodání zboží do 24 hodin i následné vracení či rozesílání zásilek

Zadání: Vzdálené ovládání pro síť lockerů

EMMA Capital se na nás obrátila ve chvíli, kdy měla k dispozici řešení logistiky, ale scházel jí způsob, jak boxy (lockery) vzdáleně ovládat

Za úkol jsme měli přijít s řešením, které bude komunikovat s velmi specifickým interface lockeru a respektovat všechny jeho zvláštnosti jako připojení ze strany lockeru přes 4G, případně BT, a na druhé straně vystavit přes API základní zákaznické use cases, které řeší drobnou logiku, jak komunikovat se zákazníkem po doručení zásilky, od otevření dvířek lockeru po žádost o jejich zavření či sběr důkazu o předání zásilky. 

Kromě toho má řešení umožnit také:

  • synchronizaci PINu pro použití lockeru v offline módu,
  • monitorovat stav – otevřená dvířka, napětí baterie, proud z/do baterie, teplotu a další parametry,
  • případně upozornit na odchylky od normálu.

Řešení: Locker Bridge v Azure umožňující rychlou škálovatelnost 

BoxNow začínal nákupem několika desítek boxů s plánem rapidního růstu. Součástí našeho řešení tak bylo nejen zajistit veškerou komunikaci přes 4G modul (případně Bluetooth s boxem), ale také zaručit jeho budoucí škálovatelnost. Proto jsme se rozhodli nasadit řešení v Azure formou Infrastructure as code – napsali jsme script, který je možné nasadit během minuty.

“Řešení v Azure jsme navrhli s ohledem na budoucí rozšíření služby BoxNow. V případě začínajícího projektu jako je tento je cloud ideální. Robustní infrastruktura není potřeba hned ze začátku, ale počítá se s ní do budoucna. Nevznikají náklady navíc nákupem infrastruktury, která bude rok ležet ladem. Cloud nám umožňuje velmi jednoduše a prakticky za běhu dodávat prostředky, které by v případě fyzické infrastruktury nebyly možné. Cloud navýší kapacitu “one click away”. Pokud bude chtít klient za měsíc o 400 boxů víc, navýšit výpočetní kapacitu nebude problém.” 

Mirka Krupková, obchodní ředitelka LinkSoftu. 

Migrace do MS Azure z Google Cloudu  

Protože klient využíval Google Cloud, byla první verze aplikace postavena v prostředí GCP a až později došlo k přehodnocení stacku směrem k MS. Z tohoto důvodu jsme aplikaci zmigrovali do Azure, kde běží ve virtuálním stroji a potřebná citlivé údaje jsou ukládány v Azure Key Vault. Zároveň jsme nastavili monitorování virtuálního stroje a alerty pro případ, které mohou indikovat přicházející problémy. Jsme tak včas informování a můžeme problémům předcházet. Infrastruktura v prostředí Azure cloudu se vyrábí kompletně přes terraform (řešení pro koncept Infrastructure as a Code), což do budoucna dovoluje snadno přidávat nová prostředí (test, ppe atd.) i nové země. 

“Musím LinkSoft pochválit. Dodali nám za rozumnou cenu velmi rychle architektonicky velmi pěkné řešení, které se snadno škáluje jak počtem lockerů, tak počtem požadavků. To nám umožnilo snadno spustit provoz lockerů i v dalších zemích. Věříme, že i případný další typ lockeru by byl snadno implementovatelný do tohoto řešení, které by umožnilo logistické platformě vůbec nevnímat, že má k dispozici různé lockery, a chovat se k nim zcela identicky.” 

Tomáš Kočka, partner skupiny EMMA Capital 

Technologické řešení:

Finální technologický stack:

  • Aplikační server: .NET 6, Entity Framework Core, Azure AD, abp.io (AutoMapper, Swagger, FluentValidation), gRPC, REST API
  • DB Server: Postgres SQL
  • Front-end: React (Redux, Hooks), HTML5, LESS, TypeScript, Ant Design, TSLint, Prettier, Axios, Moment.js, PropTypes, Lodash, Webpack, npm

REST API se zabezpečením JWT tokeny skrz Azure AD 

  • Lockery umějí komunikovat jen proprietárním protokolem na úrovni TCP. Naše řešení zajišťuje veškerou komunikaci přes 4G modul, případně Bluetooth, s boxem (lockerem).
  • Na serveru běží služba, která udržuje přímé TCP spojení s boxem a veškeré ovládání je prováděno přes definové REST API, jež používá zabezpečení pomocí Access tokenů (JWT) skrze Azure AD.

Možnost komunikace s více typy lockerů 

  • Překlad TCP komunikace na konkrétní příkazy je prováděn v samostatném modulu.
  • V případě, že bude existovat více verzí lockerů, které budou mít jiný způsob komunikace, jsme schopni vyvinout nový modul, který do systému doplníme a budeme schopni najednou komunikovat s více typy lockerů. 

“Možnost komunikace s více typy lockerů již využíváme. V případě ztráty 4G spojení je možné k lockeru dojít s mobilním telefonem (Android), pro který máme vyvinutou speciální aplikaci. Tímto telefonem se propojíme s lockerem a dále využíváme internetové spojení telefonu pro komunikaci s naším systémem a jsme tak schopni plnohodnotně ovládat locker.” 

Jan Nielsen | CTO LinkSoftu  

Ověřování pomocí sandboxu & ovládání skrz REST API

  • Ověřování lockeru zajišťuje sandbox. Zda se jedná o skutečný locker, ověřuje sandbox pomocí několika příkazů. Pokud locker toto ověření úspěšně absolvuje, je vpuštěn do řídicího modulu, kde je možné již locker ovládat skrze REST API a zároveň tento modul reaguje i na příkazy z lockeru (např. zadání PINu na jeho klávesnici).
  • REST API je přístupné jak pro logistickou aplikaci, tak také pro webovou aplikaci (React), která poskytuje přehled lockerů, možnosti jejich ovládání, konfigurace provozních parametrů a v neposlední řadě i upgrade FW.

ELK stack pro monitoring a reporty

  • Veškerá komunikace je zaznamenávána a je k dispozici pro případný audit. Pro to využíváme ELK stack, kde si zákazník sám vyrábí potřebné reporty (např. stav baterie jednotlivých lockerů), a je tak schopen předcházet provozním problémům.

Potřebujete poradit s projektem? Napište nám

... nebo si rovnou naplánujte schůzku s Mirkou

Přečtěte si také