Skip to content
Pavel Šťastný edited this page Nov 28, 2016 · 37 revisions

#Přechod na nový repozitář - Proof of concept [[TOC]]

#Úvod Účelem realizace PoC je potřeba přechodu na novější repositář pro ukládání digitálních objektů pro systém Kramerius. Tento text popisuje ověřované varianty migrace:

  1. Fedora Commons 4
  2. Java content repository

#Fedora 3 Základním problémem migrace je reprezentace dat. Starší verze fedory je postavena nad digitálním objektem, který je reprezentovaný pomocí FOXML. Popis modelu je vidět v následujícím popisu:

Datový model

Pro reprezentaci objektu v GUI nebo v API je zapotřebí dvou komponent. První je samotný repozitář. Druhý je vyhladávací engine SOLR, který poskytuje funkcionalitu hledání a zároveň umožňuje rychlý přístup k datům, které je složité z repozitáře v rozumné době získat.

#Fedora 4 Nová verze fedory 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 vícero 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.

Komunikace s repozitářem

Komunikaci s repozitářem zajišťuje objekt FedoraAccess . Stará o všechny typy volání (datové nebo získání metadat). Podpora nových repozitářů je realizována dvěma implementacemi této třídy. Nastavení dané implementace řídí konfigurační proměnná fedora.implementation. Nastavení proměnné pro jackrabbit, nastavení pro [fedoru 4] (https://github.com/ceskaexpedice/kramerius/blob/POC/common/src/main/java/res/configuration.properties#L12).

#Externí závislosti

Vyhledávací engine SOLR

V POC vyhledávání nedoznalo změn. Jediný rozdíl je v novější verzi SOLRu, která je nyní dodávána pouze jako samostatná aplikace.

OAI provider

Od verze 5.3.4 je využíván OAI provider postaven na indexu SOLRu.

Resource index

V POC jsme se resource indexu vyhnuli a to hlavně 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.

Realizace a testování

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:

Co v konceptu není řešeno.

  1. Realizace referencovaných streamů
  2. Virtuální sbírky
  3. Import dat z jiných formátů než z FOXML.
  4. Replikace dat.
  5. Rozhraní pro ČDK.

Porovnání

Oba dva repozitáře jsou z pohledu reprezentace dat zcela srovnatelné. Pokud však 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.

Clone this wiki locally