Architektura a přehled kurátorské aplikace
Tato dokumentace popisuje celý společně nasazovaný systém, včetně webového modulu web-services/kuratorska-aplikace-web. Web je běžnou součástí tohoto repozitáře a provozně součástí Kurátorské aplikace.
Účel systému
Kurátorská aplikace shromažďuje bibliografická metadata z více instancí Krameria do jednoho centrálního Solru. Nad společnými daty vede autorskoprávní workflow, umožňuje kurátorské zásahy a poskytuje změny zpět jednotlivým instancím Krameria.
Základní integrační směr je:
Kramerius A ─┐
Kramerius B ─┼─> harvester ─> Solr <─> webové UI / kurátorská práce
Kramerius N ─┘ │
└─> GET /api/changes ─> příslušný Kramerius
Harvester tedy data z Krameria čte. Po automatickém nebo ručním rozhodnutí si Kramerius výsledek vyžádá z Kurátorské aplikace. Kurátorská aplikace změny aktivně neposílá.
Části systému
web-services/kuratorska-aplikace-webje webové UI a servletová API vrstva. Podrobnosti jsou v technické dokumentaci webové a API vrstvy a v uživatelské příručce.services/harvestersklízí metadata z API Krameria v5/v7, načítá MODS, počítá počáteční workflow a zapisuje tituly a autory.services/updaterznovu vyhodnocuje workflow, dopočítává rok uvolnění, označuje chybějící data a aplikuje licence ze smluv.services/schedulerspouští harvester nebo updater jako dlouho běžící Quartz službu.single-use-services/excel-importerimportuje kurátorské tabulky TSV a obsahuje import posledních autorů z Excelu.single-use-services/last-author-updaterpáruje údaje o posledním autorovi z Excelu s autory a tituly v Solru.services/commonobsahuje sdílené datové modely, normalizaci, parsování a Solr helpery.nkp-deployskládá celý systém pomocí Docker Compose a obsahuje provozní konfiguraci i Solr cores.
Hlavní datový tok
nkp-deployspustí Solr, web, samostatný harvester a samostatný updater.- Harvester projde všechny položky
instancesv.kapp/app.conf. - Z každé instance načte změněné dokumenty, MODS, licence a zdrojovou knihovnu.
- Metadata normalizuje a uloží do centrálních kolekcí
titlesaauthors. - Workflow určí počáteční stav, přiřazené licence a rok uvolnění.
- Kurátoři upravují společná data ve webovém UI. Oprávnění k titulům se odvozují z rolí knihoven a sigel.
- Updater periodicky přepočítá kandidáty, doplní licence plynoucí ze smluv a uloží změny.
- Změna výsledné licence nastaví
state_date. Kramerius si licenční změny za časový interval vyžádá přesGET /api/changes. - Kramerius z odpovědi převezme licence pro daný PID a uloží si poslední úspěšně zpracovaný čas.
Sdílená data
Solr v nasazení obsahuje zejména cores:
titles- tituly, zdrojová metadata, kurátorská data, workflow a licence,authors- autoři vytěžení z MODS a upravení v KAPP,aut- autoritní index používaný webem,contracts- metadata smluv a jejich licence,configuration- dynamická konfigurace webu, štítky a vazby knihovna-sigla.
PDF smluv a provozní konfigurace jsou ve volume .kapp.
Navazující dokumentace
- Konfigurace aplikace - konfigurace backendu a vazba na nasazení.
- Import z Krameria - sklizeň z více Krameriů.
- Kurátorské stavy - workflow, licence a rok uvolnění.
- Tabulkové importy - tabulkové importy a poslední autor.
- Plánovač a updater - plánované služby a updater.
- Solr data - Solr cores a důležitá pole.
- Provoz a řešení problémů - deployment a diagnostika.
- Otevřená integrační rozhodnutí - rozhodnutí, která musí být dohodnuta.
- Uživatelská příručka webové aplikace - práce ve webovém UI.
- Webová a API vrstva - servletová vrstva, oprávnění a pull API pro Kramerius.