Zdravím, zakladám toto issue pre ukážku aktuálneho stavu komponent diagramu spolu s popisom jednotlivých procesov. Diagram som znovu prerobil podľa pripomienok z pondelkového meetingu. Prikladám taktiež stručný popis jednotlivých komponent.
Prikladám aj link na poznámkový blok v aplikácii Evernote, kde by malo byť to isté, čo je popísané nižšie(sekcie Diagram komponent a Popis procesov), ale o niečo lepšie čitateľné, pretože formátovanie dlhších textov v githube nie je najšťastnejšie. V poznámkovom bloku v Evernote som zvýraznil nedoriešené body/dotazy na KNAV, ku ktorým by som poprosil vaše vyjadrenie.
Popis jednotlivych komponent
Kramerius+
Scheduler
Scheduler bude vstupná brána do systému Kramerius+, ktorá bude zabraňovať prehlteniu systému. Prichádzajúci request na systém Kramerius+ bude zachytený v komponente Scheduler, ktorý rozhodne, či môže byť obohatenie spustené, alebo bude odložené do fronty požiadaviek pre spustenie neskôr. Správca systému bude volať API, ktoré bude prijímať ID publikácie/množinu ID na obohatenie. Scheduler posunie nezmenený dotaz na rozhranie komponenty Filler
Synchronizer
Synchronizer bude komponenta, ktorá sa bude starať o synchronizáciu systému Kramerius a Kramerius+. Kramerius vystaví API, ktoré bude implementovať OAI PMH protokol, pomocou ktorého bude komponenta Synchronizer upozornená v prípade, že dôjde k zmenám v systéme Kramerius. V takomto prípade sa vyhodnotí ID publikácie, v ktorej došlo k zmene, a spustí sa znovu proces obohacovania pre danú publikáciu
Filler
Filler bude mať na starosti riadenie obohacovacieho procesu, predávanie informácií medzi jednotlivými komponentami a zaistí správne poradie volaných komponent. Filler príjme ID publikácie a dotáže sa na jadro Krameria pre plný obsah publikácie. Túto publikáciu následne pošle na obohatenie komponente Enricher. Po obohatení Enricherom sa výsledný objekt pošle do TEI Convertoru pre prevod do TEI formátu. Získaný TEI formát sa pribalí na obohatený objekt a odošle komponente MongoDB pre uloženie do databázy. Po úspešnom uložení sa upozorní Feeder BE, že pribudla nová obohatená publikácia a je potrebné ju zaindexovať.
Enricher
Enricher bude jadro obohacovacieho procesu. Enricher bude komponenta, ktorá bude priamo volať interné a externé obohacovacie služby a zabezpečovať spracovávanie výsledkov, mapovanie metadát a celkové vytvorenie obohatených objektov.
MongoDB
Do komponenty MongoDB sa bude ukladať obohatený obsah. MongoDB bude samostatná aplikácia, s ktorou bude jadro Krameria+ komunikovať cez vlastné rozhrania. Prístup do MongoDB bude zaručený iba priamo cez Kramerius+ (v diagrame momentálne možné z Feederu priamo do MongoDB, bude upravené). MongoDB môže byť provozované na inom servery, ako Kramerius+. Pripojenie na MongoDB z Krameria+ bude konfigurovateľné.
TEI Converter
TEI Converter bude zaisťovať prevod obohatených objektov do valídného TEI formátu. Objekty na úrovni strany budú prevedené do formátu TEI reprezentujúce TEI body. Objekty na vyššej úrovni (výtisky, monografie, ročník periodika,...) budú prevedené do formátu TEI reprezentujúce TEI header.
Feeder Backend
Scheduler
Scheduler sa bude snažiť určit výpočetnú zložitosť prichádzajúcich dotazov. V prípade, že bude dotaz príliš zložitý, ho scheduler odloži do fronty pre vykonanie neskôr. V prípade, že sa dotaz vyhodnotí ako nie príliš zložitý, scheduler dotaz posunie ďalej pre vyhodnotenie.
QueryProcessor
QueryProcessor bude hlavná komponenta zabezpečujúca riadenie procesu dotazovania. Pri prijatí dotazu ho scheduler pošle na vyhodnotenie do Solru. Po získaní výsledku ho vrátí užívateľovi pre upresnenie výsledkov. Užívateľ následne vyfiltrované výsledky pošle naspäť komponente QueryProcessor, ktorá zaistí získanie ich plného obsahu na vyžiadanej úrovni a v zvolenom formáte. Ak dostupné údaje v Krameriu+ nebudú dostačujúce, siahne do Solr/Krameria pre ďalšie dáta, ktoré pomocou komponenty Joiner spojí a vráti užívateľovi.
Joiner
Joiner bude zaisťovať spájanie dát z rôznych zdrojov pre rovnaké publikácie do jednotného formátu.
Solr
Solr bude hlavnou komponentou zaisťujúcou vyhodnocovanie dotazu. Indexovať bude nutné všetky fieldy, nad ktorými bude mať uživateľ možnosť vyhľadávať. Ukladať by sa mali ale iba tie, ktoré sú nutné v odpovedi na dotaz v Solru. Väčšie objemy dát by sa mali doťahovať z Krameria+ priamo, Solr by mal slúžiť iba na zúženie množiny publikácií odpovedajúcich danému dotazu.
Indexer
Indexer bude poskytovať rozhranie pre pridanie nových obohatených publikácií do Indexu. Rozhranie tejto komponenty sa bude volať po úspešnom obohatení publikácie v Krameriu+.