Formulářový AIS (FAIS) je komponentou ISZR, který prostřednictvím speciálních formulářově orientovaných služeb umožňuje požádat o výdej více údajů ze základních registrů a následně zprostředkuje dávkové vydání těchto hromadných údajů prostřednictvím datové schránky. Využívá se pro případy, kdy je stanoveno zákonným zmocněním, že se využívají referenční údaje ve skupinách více subjektů. Takovým případem jsou například výdeje voličských seznamů.
FAIS dále slouží k vyřizování výdeje údajů ze základních registrů formou formulářových žádostí do datové schránky SZR a odpovědí do datové schránky žadatele. Takovým způsobem se kupříkladu vyřizují žádosti o výpisy údajů, přehledy o využití údajů apod. FAIS má rozhraní na spisovou službu dle Národního standardu pro elektronické systémy spisové služby
FAIS tedy poskytuje mimo jiné:
FAIS funguje podle následujících bodů:
FAIS není primárně určen k využití agendovými informačními systémy, ale ke zpracování formulářových žádostí ověřených identitou odesílatele žádosti prostřednictvím jeho datové schránky. Pro využití výdeje údajů ze základních registrů slouží agendovým informačním systémům Služby vnějšího rozhraní ISZR.
FAIS bude zajišťovat odpovídající proces výdeje údajů prostřednictvím datových schránek pro veškeré údaje publikované na PPDF.
Dále je popsán detailní návrh implementace pro oblast „Zpracování hromadných požadavků“ ve FAIS.
Primárním cílem hromadného zpracování je řízené využití služeb ISSS, které povede k zásadnímu omezení rizik plynoucích ze vznikajících potřeb hromadného zpracování dat prostřednictvím ISSS.
Obsahem návrhu a implementace požadavku na zpracování hromadných požadavků ve FAIS je obecná implementace příjmu požadavku na hromadné zpracování prostřednictvím ISDS, respektive prostřednictvím služby referenčního rozhraní PPDF a následné zpracování tohoto požadavku prostřednictvím ISSS, respektive ISZR.
Zpracování dat prostřednictvím ISSS je omezeno na zpracování požadavků pro jeden subjekt. V praxi aktuálně vzniká potřeba zpracování dávkových úloh obsahujících rozsáhlou množinu subjektů. V současné době je tato potřeba řešena na úrovni AIS, které v rámci své individuální implementace využívají různé přístupy, které zajišťují rozpad dávkové úlohy na individuální žádosti a zpracování těchto individuálních žádostí prostřednictvím rozhraní webových služeb ISSS.
Výše popsaný přístup znamená, že AIS může ke své implementaci přistoupit způsobem, který je buď sám o sobě nevyhovující z pohledu zátěže generované na ISSS, respektive může být nevyhovující společně v kombinaci s dalšími AIS, které řeší hromadné zpracování prostřednictvím ISSS.
Nevyhovujícím přístupem z pohledu ISSS se rozumí potenciální přetěžování jak vlastního ISSS, tak i potenciální přetěžování navázaných služeb ISZR.
Rizika plynoucí z možného přetěžování ISSS ošetřuje ISSS vlastními kontrolními mechanismy, jejichž výsledkem může být omezování povolených přístupů AIS ke službám ISSS, důsledkem čehož mohou nastávat problémy na straně AIS a jejich business procesů.
Aby bylo možné řídit zátěž ISSS pro účely dávkového zpracování a efektivně zpracovávat dávkové úlohy, požaduje OHA implementovat efektivní podporu pro dávkové zpracování prostřednictvím úprav systému FAIS, který je součástí implementace ISZR a tedy se i stane součástí referenčního rozhraní PPDF.
Na následujícím obrázku je znázorněna stávající aplikační architektura FAIS.
Interní aplikační komponenty FAIS
Interní komponenty FAIS jsou realizovány formou objektů vystavujících metody pro provádění příslušných operací.
Externí komponenty
Externí komponenty jsou systémy nebo rozhraní systémů mimo implementační perimetr FAIS. Tyto systémy a rozhraní jsou nutné pro zpracování požadavků doručovaných do systému FAIS.
Na následujícím obrázku je znázorněn model technologické infrastruktury FAIS ve vazbě na předchozí model aplikační architektury FAIS.
Na logických uzlech FAIS (Fx.DCx – virtuální server v datovém centru DC1 a DC2, tj. STC nebo CP) je spuštěn řídící proces. Na všech serverech jsou nainstalovány všechny interní aplikační komponenty FAIS (viz předchozí kapitola – aplikační role). Konfiguračně je řízeno, jaká konkrétní aplikační komponenta (nebo více komponent, respektive aplikačních rolí) je na konkrétním serveru spuštěna.
Popsaná architektura umožňuje jednotlivým serverům přiřazovat aplikační role s ohledem na aktuální potřeby (procesně řízeno provozem).
FAIS bude implementovat podporu pro hromadné zpracování vůči ISSS, respektive ISZR. Jde o implementaci nového procesu, který dosud FAIS nepodporuje.
V následujícím popisu je popsána funkcionalita primárně s ohledem na zpracování HP vůči ISSS, zpracování vůči ISZR je principiálně totožné, pokud jsou ve zpracování rozdílu, jsou v textu uvedeny.
Hromadným zpracováním se v kontextu FAIS se rozumí zpracování, kdy je technicky zabezpečeno zpracování více než jednoho volání ISSS nebo ISZR na základě jednoho vstupního požadavku do FAIS.
Jednotlivá volání ISSS, respektive ISZR musí být v rámci zpracování jednoho hromadného požadavku na sobě nezávislá, tj. musí být proveditelná v libovolném pořadí, respektive souběžně.
Hromadné zpracování je určeno pro provedení více volání ISSS respektive ISZR, kdy je v rámci každého volání zpracováván právě jeden subjekt. Subjektem se rozumí buď subjekt vedený v ROB (identifikovaný jeho AIFO) nebo subjekt vedený v ROS (identifikovaný jeho IČO).
V rámci hromadného zpracování jsou podporovány operace jednoho typu, tj. buď zápis, nebo čtení, nad jedním typem subjektu a v jednom kontextu.
V rámci hromadného zpracování budou existovat logická omezení oproti případnému řešení na straně AIS. Tato omezení jsou vyvážena zjednodušením a zefektivněním procesu zpracování, omezením rizik přetížení ISSS a ISZR, a zjednodušením implementace na straně AIS v oblasti hromadného zpracování.
Hromadné zpracování bude generovat přínosy na prakticky všech stranách zúčastněných v procesu zpracování:
Zpracování hromadných požadavků bude mít následující základní omezení:
Z principu je hromadné zpracování asynchronní proces, zpracování řídí FAIS dle aktuálního provozního stavu systému. V procesu hromadného zpracování existují z pohledu žadatele dva kroky:
Předání požadavku na hromadné zpracování může být provedeno buď voláním webové služby nebo datovou zprávou prostřednictvím ISDS. Na následujícím diagramu je znázorněn proces předání požadavku ke zpracování.
Popis procesu pro jednotlivé vstupní rozhraní je uveden v následujících podkapitolách.
Každému hromadnému požadavku bude na vstupu FAIS přidělen globální identifikátor transakce. Účelem tohoto identifikátoru bude kromě jednoznačné identifikace v rámci FAIS také příprava na integraci na jednotné logovací a auditní prostředí RR PPDF.
Tento globální identifikátor transakce bude v rámci procesu zpracování průběžně využíván při předávání požadavků mezi systémy, pokud to bude příslušný systém umožňovat, respektive bude připraven k předání tak, aby byla dodržena koncepce budoucí integrace na jednotné logovací a auditní prostředí RR PPDF.
Hromadný požadavek bude předáván v XML souboru definovaném XSD schématem. Návrh XML je optimalizován pro účely hromadného zpracování.
Základní řídící informace budou definovány typově fixovanou strukturou, vlastní data určená pro hromadné zpracování budou v XML vložena jako CDATA nebo odkazem.
V principu jsou součástí požadavku informace jako identifikace žadatele, identifikace požadované operace, identifikace subjektů, a další datové položky detailně specifikující požadavek na zpracování.
Základní princip zpracování hromadných požadavků zasílaných webovou službou bude následující:
Poznámka: požadavky předávané webovou službou mohou obsahovat AIFO pro specifikaci subjektů ROB. Pro případné předání identity subjektů ROB je možné volitelně použít i úložku AIFO (služba ISZR E175 ulozMapaAifo). FAIS je součástí referenčního rozhraní a jako důvěryhodný systém vůči ISZR bude mít automaticky implicitní přístup pro čtení úložky AIFO).
V současném stavu referenčního rozhraní PPDF je rozhraní FAIS pro konzumenty dostupné prostřednictvím eGON rozhraní ISZR. Stejným způsobem bude dostupné rozhraní webových služeb FAIS pro zpracování hromadných požadavků.
Poznámka: ISZR zprostředkovává ve stávající architektuře dostupnost FAIS na eGON rozhraní, tento stav bude využit i pro příjem hromadných požadavků. V budoucnu v rámci rozvoje konceptu RR PPDF, kdy bude FAIS integrální součástí referenčního rozhraní, bude možné tento mezikrok vypustit.
Hromadné požadavky budou přijímány prostřednictvím eGON služby E153 iszrZpracujFormular. Tato eGON služba je připravena na příjem obecného XML, prostřednictvím kterého budou zadávány hromadné požadavky. Současně bude možné touto službou získat informace o stavu zpracování HP a výsledek zpracovaného HP.
Základní princip zpracování hromadných požadavků zasílaných přes datovou schránku bude následující:
Poznámka: požadavky předávané datovou schránkou nesmí obsahovat AIFO pro specifikaci subjektů ROB. Případné předání identity subjektů ROB je možné výhradně úložku AIFO (služba ISZR E175 ulozMapaAifo). FAIS je součástí referenčního rozhraní a jako důvěryhodný systém vůči ISZR bude mít automaticky implicitní přístup pro čtení úložky AIFO.
Stavy zpracování hromadného požadavku ve FAIS jsou znázorněny na následujícím obrázku.
Stavy požadavku jsou:
Poznámka: informace o tom, zda byla žadateli, v případě iniciace prostřednictvím ISDS, odeslána DZ o přijetí / zamítnutí / odeslání výsledku bude řešena samostatnými příznaky spojenými s informací o ID DZ, tj. například stav = Zamítnutý, DS o zamítnutí = odeslána + ID DZ. Tyto příznaky se pro iniciaci WS nevyužívají.
Jednotlivé kroky orchestrace realizované na straně FAIS jsou popsány v následujících kapitolách.
V rámci formální validace je zkontrolován formát požadavku (XML) vůči stanovenému schématu – viz kapitoly Formát hromadného požadavku a splnění logických pravidel na obsah požadavku.
V rámci hlavičky požadavku jsou zkontrolovány údaje nutné pro ověření oprávnění, specifikaci požadované operace a řídící informace.
V rámci těla požadavku je zkontrolována provázanost požadované operace, šablony požadavku a optimalizovaných dat. Je ověřena existence a konzistence datových vět v rámci optimalizovaných dat a podobně.
Pro přístup k datům publikovaným prostřednictvím RR je třeba validovat oprávnění žadatele v rámci výkonu agendy. Atributy nutné pro ověření přístupu musí žadatel předat v rámci hlavičky požadavku.
V hlavičce požadavku musí žadatel specifikovat následující údaje:
Při validaci oprávnění se ověří, zda údaje uvedené v těle požadavku odpovídají známým informacím:
Dále se ověří, že žadatel vyplnil hodnoty subjekt, uživatel a důvod nebo účel.
U požadavků doručených webovou službou se navíc oproti společným validacím ověří, že:
U požadavků doručených prostřednictvím ISDS se navíc oproti společným validacím ověří, že:
V rámci věcné validace jsou provedeny podle obsahu řídících dat následující operace:
Validní požadavek je požadavek splňující všechna validační pravidla. Po úspěšném provedení validace je požadavek uložen do interního úložiště FAIS, ze kterého je následně přejímán k dalšímu zpracování.
Interní úložiště validovaných požadavků funguje na principu fronty, ze které jsou položky vybírány ke zpracování orchestrační komponentou (jedna nebo více instancí – v závislosti na dostupné infrastruktuře prostředí a konfiguraci).
Komponenty FAIS a proces zajišťující zpracování hromadných požadavků jsou znázorněny na následujícím obrázku.
FAIS nově obsahuje komponentu (službu) – HPIniciator - zajišťující zpracování validních hromadných požadavků – požadavků ve stavu „Přijatý“.
FAIS provede změnu stavu hromadného požadavku do stavu „Probíhá zpracování“. Následně FAIS dekomponuje vstupní hromadný požadavek na individuální požadavky, u nichž si zaznamená informace o zdrojové hromadné žádosti (čas, celkový počet nutných volání, kontext volání) a tyto dekompozice si uloží ke zpracování).
Komponenta pro individuální zpracování – HPProces - má definovaný počet vláken, ve kterých provádí zpracování individuálních požadavků. Počet těchto vláken je závislý na aktuálním množství HW zdrojů (na kolika HW prostředcích je komponenta spuštěna, jaké má k dispozici systémové zdroje).
Po zpracování všech dekomponovaných požadavků jednoho hromadného požadavku je sestavena hromadná odpověď a hromadný požadavek interně označen jako zpracovaný.
Výsledek zpracovaného hromadného požadavku obslouží k tomu určená samostatná komponenta (služba) FAIS – HPVysledek, která buď připraví výsledek pro proces iniciovaný voláním webové služby, nebo zajistí kroky nutné pro odeslání odpovědi datovou schránkou. Tento proces je popsán v kapitole Předání výsledku zpracování.
Princip zpracování je založený na tom, že FAIS zprostředkovává optimalizovaná individuální volání ISSS a ISZR v zastoupení za žadatelské AIS.
V okamžiku zahájení zpracování validního požadavku je z předchozího zpracování ve FAIS zajištěno, že:
FAIS je v tomto okamžiku součástí interních komponent referenčního rozhraní PPDF a může využít optimalizovaný přístup k ISZR a ISSS na základě prokázání svojí identity obdobně jako již prokazuje svoji identitu ISSS vůči ISZR.
FAIS v aktuálním stavu implementace prokazuje svoji identitu vůči ISZR na základě vlastnictví privátního klíče certifikátu vydaného CA SZR, totožný certifikát bude používán i při komunikaci s ISSS.
Optimalizace výkonu a zátěže ISZR a ISSS bude spočívat ve dvou oblastech:
Proces zpracování jednoho typického volání služby ISSS je následující:
To, které z výše uvedených operací jsou pro konkrétní požadavek provedeny, závisí na datech požadavku. Vždy je provedena minimálně jedna z operací 1, 2, 3, vždy je provedena operace 4, a podle dat jsou provedeny některé z operací 5, 6, 7 a 8.
Uvedený proces je znázorněn na následujícím obrázku.
Každé volání služby ISZR, jak je znázorněno i na obrázku výše, vyžaduje samostatné ověření oprávnění (autorizaci) procesem „Přístupová vrstva eGON rozhraní ISZR“.
V případě zpracování hromadných požadavků je počet nutných operací autorizace v ISZR násoben počtem subjektů předávaných v rámci hromadného zpracování, přičemž provedení operace autorizace vyžaduje v ISZR nezanedbatelný čas a konzumuje (s ohledem na počty souběžných volání ISZR obecně) nezanedbatelné množství systémových zdrojů.
V rámci optimalizovaného procesu zpracování na ISSS na základě bezpečně prokázané identity volajícího AIS (vůči ISSS je touto identitou v tomto okamžiku FAIS) lze:
Při volání z FAIS na straně ISSS neprovádět kontrolu oprávnění prostřednictvím služeb ISZR. Při volání ISZR v rámci zpracování požadavku iniciovaném v ISSS prostřednictvím FAIS na straně ISZR neprovádět kontrolu oprávnění interními mechanismy ISZR. ISSS a ISZR pro tyto účely budou na svém rozhraní umožňovat důvěryhodné předání informace o prokázané identitě žadatele a prokázaných oprávněních žadatele.
Princip optimalizace je znázorněn na následujícím obrázku.
Namísto opakovaného ověřování oprávnění na všech úrovních je v rámci přípravy implementace koncepce referenčního rozhraní PPDF prováděno předávání informace o prokázané identitě a prokázaných oprávněních, na základě které se lze vyhnout opakovaným komplexním procesům ověřování oprávnění v rámci individuálních voláních mezi komponentami RR PPDF (ISZR, ISSS, FAIS).
Procesy „eGON-d WS *“ tedy postihují modifikaci standardního volání eGON služby zahrnující převzetí a ověření důvěry volajícího.
Poznámka: v případě přímého volání z AIS na ISSS (mimo proces zpracování HP FAIS) provede iniciální kontrolu ISSS a informaci o provedení kontroly předá do ISZR. V procesu zpracování HP je kontrola předsunuta před ISSS a provede se pro každý HP právě jednou.
Optimalizace současného volání ISSS je prováděna na základě dvou skutečností:
Parametry pro optimalizaci známé při běhu:
Zpracování je zahajováno periodicky v definovaných intervalech (konfigurace – řádově sekundy)
FAIS v této popisované verzi nepodporuje funkci prioritizace hromadných požadavků.
Prioritizace spočívá v zavedení vhodných mechanismů pro výběr pořadí, v jakém jsou požadavky vybírány ke zpracování. V současné době nejsou jasné požadavky na způsob prioritizace a implementace mechanismů by byla založena na více či měně uměle smyšlených potřebách. Podporu prioritizace bude možné implementovat v budoucnu.
V rámci zpracování výsledku volání ISSS ošetřuje FAIS chybové stavy, které je možné z principu ošetřit na jeho úrovni. Jde o následující stavy:
Poznámka: nedostupnost rozhraní ISZR anebo ISSS je vždy dočasná provozní záležitost, tj. tato událost se ošetří automaticky a není třeba provádět další činnosti. Žadatel, pokud má pochybnosti, může získat informaci o stavu zpracování.
Informace o stavu zpracování je dostupná v administraci FAIS a je možné ji monitorovat prostřednictvím standardních dohledových nástrojů v rámci provozní infrastruktury, viz kapitola Provozní monitoring.
Ostatní chybové stavy jsou propagovány do výsledku zpracování hromadného požadavku pro zdrojový AIS.
Výsledek odpověď pro předání žadateli je dán sjednocením jednotlivých odpovědí individuálních požadavků.
Takto sestavená odpověď, pokud by byla řešena jedním „dokumentem“, by však mohla překročit technické limity pro předání odpovědi prostřednictvím podporovaných rozhraní. Toto FAIS ošetřuje zavedením možnosti dělení odpovědi na části při předání výsledku.
Interně tedy FAIS výsledek nesestavuje průběžně při zpracování ani při dokončení všech individuálních požadavků, ale připravuje jej až v okamžiku, kdy je předáván žadateli, způsob sestavení je uveden v kapitole Předání výsledku zpracování v členění podle možných způsobů předání.
Technický výsledek je vždy předáván jako XML dokument, který se skládá z hlavičky, popisující předávaná data a z datové části obsahující výsledky zpracování individuálních požadavků.
V hlavičce je uvedeno:
Seznam AIFO je předáván v případě, že je ve výstupu alespoň jednoho individuálního požadavku uvedena neprázdná MapaAifo.
Předání může být provedeno dvěma způsoby, přičemž pro hromadný požadavek iniciovaný datovou zprávou připadá v úvahu pouze jeden z těchto způsobů:
Poznámka: MapaAifo jednotlivých individuálních výsledků nejsou na výstupu slučována do jedné množiny, protože každá odpověď má individuální vazbu.
Zpracování HP je z pohledu AIS žadatele asynchronní proces. Získání výsledku zpracování HP si ošetřuje žadatelský AIS ve vlastní režii voláním FAIS (popis rozhraní FAIS viz kapitola Rozhraní WS FAIS pro hromadné požadavky) prostřednictvím eGON služby ISZR E153.
Poznámka: WS služby FAIS jsou pro konzumenty zprostředkovány prostřednictvím eGON služby ISZR E153.
V kompetenci AIS žadatele je dotaz na stav zpracování HP. Prostřednictvím WS může AIS žadatele jednak číst stav zpracování HP, jednak získat výsledek zpracování.
AIS žadatele kontroluje periodicky stav zpracování hromadného požadavku. Podle aktuálního stavu zpracování pak přizpůsobuje četnost kontroly.
FAIS implementuje interní mechanismy na řízení zátěže při zpracování HP. Jedním z těchto mechanismů je ochrana proti nadměrnému přetěžování při získávání informací o stavu zpracování, respektive při pokusech o vyzvednutí výsledku dosud nezpracovaného požadavku.
V případě zjištění opakovaného volání operací dotazu na stav požadavku, respektive čtení odpovědi dosud nedokončeného požadavku může FAIS operaci odmítnout bez zahájení jejího provádění.
Důvod odmítnutí z důvodu nadměrného opakování bude uveden v odpovědi pro volající AIS v souladu s implementací požadavku na řízení zátěže na externím rozhraní ISZR.
Speciální funkcionalitou rozšiřující zpracování HP je podpora asynchronního PUSH režimu ISSS.
FAIS bude podporovat asynchronní režim ISSS s podporou aktivního doručení odpovědi do AIS. V tomto režimu zajistí FAIS iniciaci všech individuálních požadavků na ISSS v asynchronním PUSH režimu, přičemž konzumentem PUSH operace výsledku bude přímo AIS žadatele.
V tomto režimu bude výsledek zpracování individuálního požadavku doručen na žadatelský AIS přímo z ISSS. AIS obdrží výsledek individuálního zpracování ihned po zpracování na ISSS a nemusí čekat na dokončení kompletního zpracování ve FAIS.
Tento režim je řízen prostřednictvím specifikace v řídících datech HP, viz kapitola Identifikace operace.
Příjem asynchronního výsledku z ISSS je standardně definován v dokumentaci ISSS (chování, požadavky na AIS na vystavení cílového bodu pro příjem výsledku, jeho registraci v ISSS , atd.).
Poznámka: ISSS současně s dokončením asynchronního zpracování kromě odeslání výsledku na žadatelský AIS notifikuje o dokončení zpracování i FAIS, viz kapitola Notifikace z ISSS o dokončení individuálního požadavku. V případě neúspěchu notifikace ISSS notifikuje individuální požadavky do FAIS opakovaně v definovaných intervalech, přičemž v případě detekce dočasného selhání konektivity je proces notifikace na straně ISSS uspán a probuzen po definované době.
Výsledek je předán datovou zprávou do datové schránky, ze které byla žádost provedena.
Při předání výsledku je podporována vazba prostřednictvím čísla jednacího, respektive spisové značky, pokud je žadatel specifikoval v jím zaslané iniciační datové zprávě.
Pokud bude provedena alespoň jedna požadovaná operace, pak bez ohledu na její výsledek bude do výstupní datové zprávy předáno definované XML s výsledkem zpracování.
V případě, že by velikost výsledku překročila maximální povolenou velikost, bude předání provedeno ve více datových zprávách, z XML je patrná informace o rozdělení, aktuální části a celkovém počtu datových zpráv, ze kterých se skládá výsledek.
Pokud nebude možné z nějakých důvodů požadavek zpracovat, tzn., že nebude provedena žádná požadovaná operace, bude výstupní datová zprava obsahovat PDF s popisem chyby a současně XML v definované struktuře, obsahující informaci o chybě.
Informace o stavu zpracování hromadného požadavku lze získat jak pro požadavky iniciované prostřednictvím webové služby, tak pro požadavky iniciované prostřednictvím datové zprávy. Při čtení informace o stavu hromadného zpracování musí být na vstupu uveden minimálně buď:
Pro získání informace o stavu zpracování je možné použít pouze rozhraní webových služeb. Popis je uveden v kapitole Dotaz na stav požadavku.
V uživatelském rozhraní FAIS (řídící pult FAIS) je možné zobrazovat přehled hromadných požadavků.
Primárním cílem tohoto přehledu je podpora provozu, pro zobrazení výstupu bude nutné zadat filtry pro zobrazení.
Požadavky bude možné vyhledat:
FAIS v souvislosti s implementací hromadného zpracování vystavuje pro infrastrukturní nástroje monitorovací rozhraní, prostřednictvím kterého lze průběžně monitorovat provozní stav FAIS. V rámci tohoto rozhraní jsou dostupné informace:
Monitorovací rozhraní je dostupné prostřednictvím http protokolu v rámci interní sítě.
Rozhraní tohoto API je dostupné na adrese IszrFaisHPMon/Full v rámci webového rozhraní webových služeb FAIS. Výstupní formát rozhraní je JSON.
Informace o provozním stavu vystavované prostřednictvím API pro provozní monitoring (popsané v předchozí kapitole API pro provozní monitoring) jsou dostupné i v uživatelském rozhraní FAIS.
V ŘP FAIS jsou výše popsané informace dostupné v menu Monitoring / Hromadné požadavky.