====== Předávání obsahu datového fondu ====== ===== Obecná pravidla a postupy ===== Předávání údajů mezi informačními systém veřejné správy (a agendami, které se v systémech vykonávají) se má vždy dít pomocí [[nap:referencni_rozhrani|referenčního rozhraní veřejné správy]] a systémů, které jej realizují, tedy [[nap:iszr|ISZR]] a [[nap:egsb|eGSB/ISSS]]. Pro některé typy výměny však nemusí stačit v současné době definované služby a je nutné spojit dohromady úkony mezi dotčenými systémy a službami referenčního rozhraní. Jedním z těchto příkladů je předávání údajů o subjektech, o kterých požadující systém neví, že existují. Postup je navržen jako asynchronní, protože se předpokládá, že výběr [[nap:evidence_udaju_o_subjektech|AIFO]] ze zdrojové agendy a jejich překlad na AIFO cílové agendy může u stovek tisíc záznamů trvat déle než desítky sekund a synchronní volání by mohlo často končit chybou "timeout". Obecná pravidla předpokládají následující situaci: *ISVS 1 má údaje, které je nutné poskytnout ISVS 2. *ISVS 1 i ISVS 2 jsou řádně napojeny na referenční rozhraní a mají ztotožněný datový kmen proti základním registrům. *Předávání údajů klasickým dotazováním na jeden subjekt je zde nedostatečné z hlediska kapacity a transakční náročnosti, ale i z důvodu, že ISVS 2 neví, jaké subjekty vede ISVS 1 a nemůže se tedy na ně zeptat. ====ISVS 1 připraví a vystaví webovou službu 1==== -//Webová služba 1// přijme požadavek na předání seznamu AIFO osob dle zadaných výběrových podmínek (definovány správcem //ISVS 1// – např. typ víza/dokladu/pobytu, národnost, datumy (od do) kdy byl záznam o dané osobě v //ISVS 1// vytvořen, atp). Pro obecnost doporučujeme možnost správy oprávnění na danou kombinaci vstupních podmínek. -Jako odpověď na volání //webové služby 1// vrátí //ISVS 1// číslo požadavku, které bude možné dále použít jako vstup do //webové služby 2// viz dále. Číslo požadavku přiděluje //ISVS 1// podle vlastních pravidel, například jednoduché pořadové číslo ve spojité řadě, nebo náhodné číslo doplněné datem a časem volání jako string či jiná schémata ====ISVS 1 připraví a vystaví webovou službu 2==== -Pro vlastní předávání výsledků (požadovaného seznamu AIFO) //ISVS 1// připraví a vystaví //webovou službu 2//. Jejím voláním v doporučených intervalech (např. 15 minut) původní tazatel //ISVS 2// zjišťuje, zda požadavek s konkrétním číslem viz. výše již byl zpracován a může obdržet výsledek. //Webová služba 2// tedy k zadanému číslu požadavku vrací následující odpovědi: -požadavek ještě není vyřízen -požadavek je vyřízen, v tom případě je zpět předán seznam (jedné či více) úložek AIFO, což jsou čísla pro volání příslušné funkce ISZR, vracející seznam konkrétních AIFO přeložených pro cílovou agendu. Vrácen je tedy seznam ID úložek AIFO viz dále -požadavek nebyl nalezen, pravděpodobně již splnil podmínky expirace a byl odstraněn -Doporučujeme implementaci standardních procesů pro správu asynchronní fronty (mazaní požadavků po stanovené době, volitelně s ohledem na to, zda již proběhlo volání //webové služby 2// a seznam ID úložek AIFO byl předán či naopak neproběhlo a původní žadatel se zapomněl zeptat na výsledek svého původního dotazu atd.) ====Způsob vyřizování požadavků na straně ISVS 1==== ISVS 1 vede evidenci (tzv. frontu) požadavků, do které z jedné strany //webová služba 1// přidává nové požadavky s nově přidělovanými čísly a z druhé strany jsou ještě nevyřízené požadavky postupně zpracovávány (připravován jejich datový výstup) tak, aby při volání služby č.2 bylo co vrátit a současně po stanovené době bylo možné požadavek vyřadit z evidence jako vyřízený, případně po ještě delší době jako vyřízený ale nikým nepřevzatý. Postup na straně //ISVS 1//: -//ISVS 1// aplikuje výběrové podmínky z přijatého požadavku na svůj datový kmen. Výsledkem je seznam AIFO osob, které vyhovují výběrové podmínce -//ISVS 1// rozdělí vybraná AIFO po 10 000 záznamech, což je doporučená hodnota získaná empiricky pro optimální provoz překladových funkcí [[nap:iszr|ISZR]] viz dále -Pro každých nejvýše 10 000 záznamů //ISVS 1// volá službu [[nap:iszr|ISZR]]  [[https://www.szrcr.cz/images/dokumenty/v%C3%BDvoj%C3%A1%C5%99i/detailn%C3%AD_popisy_eGon_slu%C5%BEeb/SZR_popis_eGON_sluz%CC%8Ceb_E175_iszrUlozMapaAifo.pdf|E175 - iszrUlozMapaAifo.pdf]] s uvedením //ISVS 2// jako příjemce úložky. Výsledkem volání služby je ID úložky AIFO -//ISVS 1// shromáždí u každého vyřízeného požadavku všechna získaná ID úložky a čeká na zavolání //webové služby 2//, aby je předal původnímu zájemci o data ====Vyřízení odpovědi na straně ISVS 2==== -//ISVS 2// cyklicky volá na svá čísla požadavků, která obdržel voláním //webové služby 1//, //webovou službu 2//, aby se dozvěděl seznam ID úložek AIFO. Na každou takovou úložku následně musí zavolat službu [[nap:iszr|ISZR]]  [[https://www.szrcr.cz/images/dokumenty/v%C3%BDvoj%C3%A1%C5%99i/detailn%C3%AD_popisy_eGon_slu%C5%BEeb/SZR_popis_eGON_sluz%CC%8Ceb_E176_iszrPodejMapaAifo.pdf|E176 - iszrPodejMapaAifo.pdf]], výsledkem je obdržený seznam AIFO, přeložený pro cílovou agendu -Zpravidla několika voláními funkce E176 (na každé dodané ID úložky AIFO) //ISVS 2// získá celkovou množinu AIFO jako odpověď na svůj původní požadavek. Tuto množinu následně řízeně přidá do datového fondu //ISVS 2//, typicky jako přírůstek za příslušné období od do. Řízené přidání znamená brát ohled na fakt, že osoba s konkrétním AIFO již v //ISVS 2// může existovat a není žádoucí jí mít v evidenci vícenásobně -Pro získání konkrétních údajů k osobám, ke kterým //ISVS 2// získalo AIFO a ještě nevede žádné další údaje, slouží standardní služby základních registrů [[https://www.szrcr.cz/images/dokumenty/v%C3%BDvoj%C3%A1%C5%99i/detailn%C3%AD_popisy_eGon_slu%C5%BEeb/SZR_popis_eGON_sluz%CC%8Ceb_E276_robCtiAifo2_1_00_v1_r0.pdf|E276_robCtiAifo2.pdf]] pro [[nap:rob|ROB]] a [[https://www.szrcr.cz/images/dokumenty/v%C3%BDvoj%C3%A1%C5%99i/detailn%C3%AD_popisy_eGon_slu%C5%BEeb/SZR_popis_eGON_sluz%CC%8Ceb_E173_aiscCtiAifo2.pdf|E173 - aiscCtiAifo2.pdf]]) pro [[nap:cis|AISC]], případně dalších publikací v rámci agendových kontextů v systému [[nap:egsb|eGSB/ISSS]] - např. řidičská oprávnění vydaná ČR, zdravotnická problematika očkování proti infekčním nemocem atd. Pokud systém //ISVS 2// ke konkrétnímu AIFO již nějaké údaje z [[nap:rob|ROB]] vede, není vhodné, aby si opakovaně četl výše uvedenými funkcemi data z [[nap:rob|ROB]], protože data se nemění tak často a jednalo by se o nadužívání čtecích funkcí a přetěžování tohoto registru. Pro tento účel jsou určeny funkce [[nap:iszr|ISZR]] pro tzv. notifikaci o změnách údajů, které automaticky reportují jen ty AIFO u kterých došlo v zadaném období k nějaké změně údaje, čímž k přetěžování [[nap:rob|ROB]] nedochází. Detailní popis mechanismu notifikací není předmětem tohoto materiálu. {{tag>"datový fond" předávání udaje ppdf}}