Generování dokumentů v zařízení uživatele: rychle, levně a bezpečně
Generování PDF reportů, faktur, protokolů nebo exportů patří k nejčastějším požadavkům firemních aplikací. Většina řešení posílá dokumenty ke zpracování na server a s rostoucím počtem uživatelů rostou i náklady. V tomto článku ukazujeme jiný přístup: zpracování dokumentů přímo v zařízení uživatele, které škáluje samo a neplatíte za něj serverový výkon.
Shrnutí
- Dokumenty lze generovat i zpracovávat přímo v prohlížeči nebo mobilní aplikaci bez odesílání dat na server.
- Každý uživatel „přináší" vlastní výpočetní výkon, takže řešení škáluje, aniž byste rozšiřovali infrastrukturu.
- Citlivá data nemusí opustit zařízení, což ocení každý, kdo řeší GDPR nebo přísnější firemní bezpečnostní politiky.
- I report o stovkách stran vznikne plynule na pozadí, aplikace nezamrzne a uživatel může dál pracovat.
- Pro extrémně velké soubory nebo OCR navrhujeme hybridní řešení: klient zvládne běžný provoz, server jen výjimky.
Dva přístupy ke zpracování dokumentů
Když aplikace potřebuje vygenerovat dokument nebo zpracovat větší množství dat, nabízí se dvě cesty.
Zpracování na serveru
- Průběžné náklady – výkon platíte za každého uživatele a dokument
- Špičky – uzávěrky vyžadují předimenzovanou kapacitu
- Čekání – data putují na server a zpět
- Data v pohybu – citlivé dokumenty opouštějí zařízení
Zpracování v zařízení uživatele
- Výkon zdarma – dodává ho zařízení uživatele
- Okamžitý výsledek – bez čekání na přenos
- Offline v mobilních a desktopových aplikacích – zpracování běží i bez připojení k internetu
- Data zůstávají u uživatele – nic neopouští zařízení
Důležité: Moderní telefony a počítače mají výkon, který dřív měly jen servery. Pro většinu firemních dokumentů je zpracování v zařízení nejen možné, ale i výrazně levnější.
Co to znamená pro rozpočet projektu
U serverového zpracování platíte víc s každým uživatelem a dokumentem, a to trvale, každý měsíc. U zpracování v zařízení je náročnější pouze úvodní vývoj; samotné generování dokumentů už pak nestojí nic.
Škálování zdarma
Tisíc uživatelů znamená tisíc procesorů, ne tisícinásobný účet za cloud.
Žádné špičky
Uzávěrka na konci měsíce nezpomalí systém, každý export běží u svého uživatele.
Jednodušší infrastruktura
Méně serverových komponent znamená méně údržby a méně míst, kde může něco selhat.
Jak to řešíme
Klientské zpracování stavíme na dvou technikách: náročná práce běží odděleně na pozadí a data před generováním předpřipravíme a optimalizujeme.
Zpracování na pozadí: aplikace zůstává plynulá
Nejčastější obava u zpracování v zařízení zní: nezasekne se aplikace, když bude generovat report o stovkách stran?
Zasekla by se, pokud by výpočet běžel ve stejném vlákně jako uživatelské rozhraní. Proto náročné zpracování oddělujeme do samostatného vlákna, které pracuje nezávisle na obrazovce:
- uživatelské rozhraní zůstává plynulé, uživatel může dál pracovat
- vlákno na pozadí skládá dokument, zpracovává data nebo komprimuje soubory
- případná chyba při zpracování neovlivní zbytek aplikace
Ve webové aplikaci takové vlákno vyžaduje vlastní kód, který připravujeme v optimalizované podobě už při sestavení aplikace. Prohlížeč pak zvládne i úlohy, které by jinak patřily na server:
- generování vícestránkových PDF včetně grafů, tabulek a fotografií
- zpracování tisíců záznamů do souhrnných reportů
Zpracování po částech: rychlost i u velkých dat
Druhou výzvou je objem dat. Před generováním proto data i rozvržení dokumentu předpřipravíme a optimalizujeme: záznamy seskupíme do celků, které se zpracovávají nejefektivněji, ať jde o řádky tabulek, obrázky, nebo grafy, a dokument z nich skládáme po částech. Doba generování pak roste s množstvím dat přímo úměrně a export s tisíci záznamy vznikne stejně hladce jako ten o deseti řádcích.
Bezpečnost a soukromí dat
Firemní dokumenty často obsahují osobní údaje, ceny nebo interní informace. Při zpracování v zařízení data nemusí vůbec opustit telefon či prohlížeč uživatele. Na server se odešle jen to, co tam skutečně patří.
To zjednodušuje soulad s GDPR a vyhovuje i přísnějším bezpečnostním politikám, kde je pohyb dokumentů mimo firemní zařízení nežádoucí.
Nejbezpečnější přenos dat je ten, který vůbec neproběhne.
Kdy zpracování v zařízení nestačí
Klientské zpracování není dogma, navrhujeme ho tam, kde dává smysl. Na server patří úlohy, které zařízení uživatele reálně nezvládne nebo které vyžadují centrální zdroje:
- OCR a vytěžování dokumentů. Rozpoznávání textu ze skenů a strojové zpracování obsahu.
- Hromadné noční úlohy. Generování tisíců dokumentů bez přítomnosti uživatele.
- Archivace a dlouhodobé uložení. Centrální úložiště s řízeným přístupem.
- Velmi slabá zařízení. Starší telefony s omezenou pamětí.
V takových případech volíme hybridní řešení: běžný provoz obslouží zařízení uživatele, server řeší jen výjimečné a hromadné úlohy. Platíte tak servery pouze tam, kde jsou skutečně potřeba.
Důležité: Správná otázka nezní „klient, nebo server?", ale „která úloha kam patří?". Dobře navržená aplikace kombinuje obojí tak, aby provoz vyšel co nejlevněji a odezva byla co nejrychlejší.
Na co je při návrhu potřeba myslet
Aby vše fungovalo spolehlivě u všech uživatelů, myslíme při návrhu na několik oblastí:
- Paměť prohlížeče. Každý prohlížeč i telefon má jiný strop; velký export ho nesmí překročit, jinak systém záložku bez varování ukončí.
- Přerušené zpracování. Uživatel může zavřít záložku nebo mu systém uspí aplikaci uprostřed práce; delší operace proto musí jít bezpečně spustit znovu.
- Objemná vstupní data. Zpracovat jde jen to, co už v zařízení je. Data proto synchronizujeme průběžně a po malých změnách; export pak nemusí nic velkého stahovat a začne okamžitě.
- Rozdíly mezi zařízeními. Řešení testujeme od výkonných počítačů po běžné mobilní telefony.
- Vícejazyčnost a speciální znaky. Dokumenty správně zobrazí diakritiku, různé abecedy i odborné symboly nezávisle na tom, jaké fonty má uživatel v zařízení.
Z naší praxe
Reporty a exporty v PatrolControl
Tento přístup používáme v PatrolControl, portálu pro řízení ostrahy klienta DOBRÁ AGENTURA. Systém zpracovává 3 miliony událostí denně z docházky, směn a bezpečnostních incidentů a dispečeři z nich průběžně potřebují reporty a exporty pro klienty i interní evidenci.
Bezpečnostní systémy – DOBRÁ AGENTURA
PatrolControl – portál
Reporty docházky, směn a bezpečnostních událostí i hromadné exporty se skládají přímo v prohlížeči dispečera. Server tak negeneruje dokumenty pro každého z uživatelů zvlášť a zvládá jen samotný provoz portálu.
Postavíme vám aplikaci, které neporostou náklady s počtem uživatelů
Kde se budou dokumenty zpracovávat, je architektonické rozhodnutí. Padá na začátku projektu a později se mění draho. Vyvíjíme webové a mobilní aplikace, které generují reporty, faktury, protokoly a exporty přímo v zařízení uživatele: rychle, bezpečně a bez průběžných plateb za serverový výkon.
Napište nám a poskytneme vám bezplatnou konzultaci. Navrhneme řešení podle vašeho projektu, včetně hybridní architektury tam, kde ji data vyžadují.
Konzultovat projekt