-
Notifications
You must be signed in to change notification settings - Fork 26
#Ověření možnosti přechod na nový repozitář systému Kramerius - Proof of concept [[TOC]]
#Úvod Účelem realizace PoC pro systém Kramerius je potřeba přechodu na novější repositář pro ukládání digitálních objektů. Ta je dána technologickým vývojem používaných komponent. Nové verze: Java, Fedora commons, SOLR sebou nesou končicí podporou verzí starších, které systém využívá. Tento text popisuje ověřované varianty repozitáře:
- Fedora Commons 4 (JCR)
- Java content repository (v implementaci Jackrabbit)
#Fedora 3 Současné verze Krameria (5.*) využívají Fedoru 3, konkrétně verze 3.4-3.8.
Prvním a základním problémem je reprezentace dat v uložišti. Starší verze repozitáře Fedora využívá pro reprezentaci popisný formát FOXML, který popisuje jeden bibliografický objekt. Může obsahovat datové streamy jako jsou obrázky nebo popisná metadata a zároveň metadata, která drží relace mezi jednotlivými objekty, datový stream RELS-EXT.
Bližší popis modelu zde.
Pro zobrazení objektu v GUI systému Kramerius nebo prostřednictvím API Krameria je zapotřebí dvou komponent. První je samotný repozitář s uloženými daty. Druhý je vyhledávací systém SOLR, který poskytuje funkcionalitu hledání a zároveň umožňuje rychlý přístup k datům, které je relativně složité z repozitáře získat, případně získat v odpovídajícím čase.
#Fedora 4 Nová verze úložiště Fedora implementuje Linkded data platform. Základními prvkem je uzel - LDP Resource. Může obsahovat dětské uzly, pak se jedná Container.
Samotná reprezentace objektu může vypadat následovně:
<Container Digital object>
- <Non-RDF resource DC>
- <Non-RDF resouce BIBLIO_MODS>
- <Non-RDF resource BIBLIO_MODS>
- <Non-RDF resource RELS-EXT>
Důležitým aspektem zde je fakt, že samotný RELS-EXT, který drží vazby mezi objekty, je zde uložen jako standardní datastream. (Tak tomu ostatně bylo u i fedory 3). Tím je zaručeno "stejné" nakládání s objektem jako bylo u dřívější verze.
#Java content repository Podobným způsobem lze modelovat data i v repozitáři JCR. Nutno je jen oddělit typy uzlů, které reprezentují digitální objekt od uzlů reprezentujících datastream.
##Uložení digitálních objektů v repozitáři Objekty mohou být uloženy v repozitáři několika způsoby. V implementaci PoC bylo využito nejjednodužší varianty a to uložení všech objektů v jedné úrovni. Viz následující struktura:
- <PID_1>
- <PID_1>
Poznámka: Ve výsledné implementaci se uložení objektů může (a nejspíše bude) lišit.
Komunikaci s repozitářem zajišťuje objekt FedoraAccess . Stará o všechny typy volání (datové nebo získání metadat). Podpora je zajištěna implementací tříd, které realizují komunikaci s repozitářem. Situace jde vidět na následujícím obrázku:
V rámci konfigurace je možno měnit a zvolený repozitář. Viz konfigurační soubor (https://github.com/ceskaexpedice/kramerius/blob/POC/common/src/main/java/res/configuration.properties#L6) a (https://github.com/ceskaexpedice/kramerius/blob/POC/common/src/main/java/res/configuration.properties#L12). Základní komunikační jednotkou, která zůstává FOXML a to z důvodů snažšího přechodu mezi jednotlivými instancemi repozitářů.
Pro jednotlivé
#Externí závislosti
Předmětem POC nebyly změny ve vyhledávání s pohledu UI Krameria. Rozdíl je v implmentaci novější verzi SOLRu, která je nyní dodávána pouze jako samostatná aplikace.
Od verze 5.3.4 je využíván OAI provider postaven na indexu SOLRu. Tato změna je jedním z kroků k postupnému nahrazení Resource indexu.
V POC jsme se resource indexu záměrně vyhnuli a to zejména z důvodu výkonostních problémů na větších instancích (NKP, ČDK, MZK). Potřebné vazby jsou během importu ukládány v pomocném indexu. Finální řešení pro produkční nasazení bude řešeno společně s migračními nástroji. Předpokládá se jeho vynechání a nahrazení funkčnosti vyhledávačem.
V rámci Poc byla vytvořena distribuce, která umožňuje naimportovat, zaindexovat a prohlížet jednoduchou monografii. Instalace distribuce s popisem jak importovat data je popsána zde.
- Realizace referencovaných streamů
- Virtuální sbírky
- Import dat z jiných formátů než z FOXML
- Replikace dat
- Rozhraní pro ČDK
Oba dva repozitáře Fedora4 a JackRabbit jsou z pohledu reprezentace dat zcela srovnatelné. Pokud vezmeme v úvahu možnost snadného přechodu na jiný repozitář, resp. jinou implementaci repozitáře (například z důvodu výkonnostních), jeví se výhodnější využití standardu JCR.