1
SWBcontent
Heritrix 3.x Konfigurations-UI
Dr. Barbara Löhle
Bibliotheksservice-Zentrum Baden-Württemberg
Dienstag, 03.12.2013 Konstanz
2 Dr. Barbara Löhle | Heritrix 3.x Konfigurations-UI | 03.12.2013
Inhalt
Systemarchitektur - Stand 2013 - Komponenten
Integration von Heritrix 3.x (REST)
Heritrix 3.x
crawler-beans.cxml
SWBcontent Konfigurations-UI (Erweiterungen)
3
HTTP
Stand 2013: Komponenten
SWBcontent
- OAI-PMH Data
Provider
- HTTrack
Heritrix 3.x Solr-3.5.0
wayback Jetty-Webserver
HTTP-Z3950
Gateway
Bib
Bib
HTTPS
Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 03.12.2013
4
Integration von Heritrix 3.x
Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 03.12.2013
Systemarchitektur
SWBcontent und Heritrix 3.xCrawl-Job
Nutzersicht
5
Web-
Harvesting
HTTPS
SWBcontent
wayback
1.8.x
HTTP
Jetty-Webserver
HTTP
Integration von Heritrix 3.x - Überblick
(REST)
Heritrix 3.x
Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 03.12.2013
6 Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 03.12.2013
SWBcontent: Generierung eines Heritrix 3.x Crawl-Jobs nach der
Erzeugung eines Job-Directories
mit dem zentralen Konfigurationsfile, dem crawler-beans.cxml
oder mit dem crawler-beans.cxml und einem Zusatzfile, dem
override-properties File.
SWBcontent: Losschicken eines Heritrix 3.x Crawl-Jobs
SWBcontent legt das Job-Directory in den Job-Bereich von
Heritrix 3.x.
Mittels REST (Representational State Transfer) werden die
Job-Kommandos create, build, launch und unpause an den
Heritrix 3.x Server geschickt und vom diesem ausgeführt.
SWBcontent: Jobüberwachung in 2 Min. Intervall – Abfrage
mittels REST, ob der Job-Zustand notRunning erreicht ist.
SWBcontent – Heritrix 3.x Crawl-Job
7 Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 18.12.2013
Heritrix 3.1.2 – Sicht: Create
8 Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 18.12.2013
Heritrix 3.1.2 – Sicht: Build
9 Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 18.12.2013
Heritrix 3.1.2 – Sicht: Launch
10 Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 18.12.2013
Heritrix 3.1.2 – Sicht: Running
11 Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 18.12.2013
SWBcontent – Crawlüberwachung
12 Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 03.12.2013
SWBcontent: Beenden des Heritrix 3.x Crawl-Jobs
Falls nötig wird mittels REST das Job-Kommando terminate
an den Heritrix 3.x Server geschickt
Zum Schluss wird mittels REST das Job-Kommando teardown
an den Heritrix 3.x Server abgesetzt.
SWBcontent: Cleanup und Verlinkung
SWBcontent verschiebt das Job-Directory zurück in den
Standard-Download-Bereich der gegebenen Installation.
Schließlich werden die technischen Daten, insbesondere die
Archiv-URL, bzw. der url_storage Eintrag (Bib), angelegt sowie
die Job-Tabelle aktualisiert.
SWBcontent – Heritrix 3.x Crawl-Job
13 Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 18.12.2013
Heritrix 3.1.2 – Sicht: Terminate
14 Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 18.12.2013
Heritrix 3.1.2 – Sicht: Teardown
15 Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 18.12.2013
Heritrix-3.x Crawl im Filesystem
16 Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 18.12.2013
SWBcontent- Heritrix-3.x Crawl
17 Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 03.12.2013
SWBcontent-Nutzer: Erzeugung der oder Upload des Konfigura-
tionsfiles des Heritrix 3.x Crawl-Jobs
Mittels des SWBcontent Heritrix 3.x Konfigurations-UI wird ein
override.properties File erzeugt, das gemeinsam mit dem
bisher für alle Installationen geltenden template-crawler-
beans.cxml einen Heritrix 3.x Crawl-Job konfiguriert.
Alternativ: Upload eines vom Nutzer selbst erstellten crawler-
beans.cxml Files.
Bem.: In der Job-Tabelle sind nun auch die zum Job gehörigen
Konfigurationsfiles zugänglich.
Nutzersicht
18 Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 03.12.2013
SWBcontent-Nutzer: Jobtabelle
Es sind nun alle Konfigurations-, Logs- und, nach Job-Beendi-
gung, alle Reports-Files zugänglich. Es werden nur jene Files
gezeigt, die nicht leer sind.
Status des Jobs ist logs/job.log zu entnehmen.
Der Befehl Kill schickt mittels REST das terminate Kommando
an den Hertrix 3.x Server.
Bem.: Die Heritrix 3.x Konfigurations-, Logs- und Reports-
Files eines Crawl-Jobs werden zukünftig (geplant) unter den
technischen Daten eines Downloads zu finden sein. (Analoges
gilt für die HTTrack-Jobs.)
Nutzersicht
19 Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 03.12.2013
Nutzersicht - Konfigurations-UI
20 Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 03.12.2013
Nutzersicht: Job-Tabelle
21 Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 03.12.2013
Nutzersicht: override.properties
22 Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 03.12.2013
Nutzer: template crawler-beans.cxml
23
Heritrix 3.x
Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 03.12.2013
Heritrix 3.x - Eigenschaften
Heritrix 3.x - Bestandteile
Heritrix 3.x Admin UI
24
Heritrix ist der Open Source Wev Crawler der Internet Archive.
Dieser ist in Java geschrieben und wird seit 2004 entwickelt. Das
Heritrix Package enthält eine Web-Applikation, „die Web
Adminstrative Console“. Heritrix wird mit dem embedded Web-
Server Jetty Java HTTP Server geliefert.
Heritrix ist in 2 major Releases vefügbar
Heritrix 1.14.x im Maintenance Zustand
Heritrix 3.x (H3; aktuell: heritrix-3.2.0-SNAPSHOT)
Hauptunterschiede zwischen Heritrix 3.1.x und Heritrix 1.14.x:
H3 basiert auf dem Application Development Framework
Spring 3.x.
Die komplexe Konfiguration von H3 wird mittels einer Spring
Bean realisiert.
H3 ist RESTful, d.h. H3 benutzt den Representational State
Transfer (REST) um eine HTTPS basierte Client Kommunikation
zu realisieren.
Heritrix 3.1.x - Eigenschaften
25
Heritrix3.x ist besteht aus 3 Teilen
engine – core von Heritrix 3.x
modules – Diese sind mittels eigener Software erweiterbar.
commons – Dieser Teil enthält Utilities, die auch von anderen
Applikationen genutzt werden können. Insbesondere die
wayback-machine nutzt das commons-Paket.
SWBcontent bindet ebenfalls das commons-Paket ein.
Heritrix 3.x - Bestandteile
Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 03.12.2013
26 Dr. Barbara Löhle | Hritrix3.x Konfigurations-UI | 03.12.2013
Das Heritrix 3.x Admin UI besitzt keine Nutzerverwaltung und
sollte nur als ferngesteuerter Server angesehen werden.
Der Start des Servers gibt insbesondere das Job Directory der
Crawl-Jobs vor.
Mit dem Kommando create wird ein vom Admin neu
angelegtes Directory als Ausführungs-Directory bei Heritrix 3.x
angemeldet.
vgl.: SWBcontent meldet zu Beginn eines Jobs das in das
Heritrix 3.x Job Directory verschobene SWBcontent-Job-
Directory bei Heritrix 3.x mit dem Befehl create an.
Heritrix 3.x Admin UI
27 Dr. Barbara Löhle | Hritrix3.x Konfigurations-UI | 03.12.2013
Heritrix 3.x Admin UI
28 Dr. Barbara Löhle | Hritrix3.x Konfigurations-UI | 03.12.2013
In einem neu angelegten Job Directory sind die Heritrix 3.x
Kommandos build, launch, unpause, terminate und teardown als
buttons vorhanden. (SWBcontent bedient diess buttons des
Heritrix 3.x Admin UI mittels REST.)
Ferner wird hier das mitgelieferte crawler-bean.cxml File
zugänglich.
Das Heritrx 3.x Admin UI bietet einen Bean-Browser und Editor,
zur strukturierten Darstellung der Gesamtkonfiguration.
Heritrix 3.x Admin UI
29 Dr. Barbara Löhle | Hritrix3.x Konfigurations-UI | 03.12.2013
Heritrix 3.x Admin UI
30 Dr. Barbara Löhle | Hritrix3.x Konfigurations-UI | 03.12.2013
Heritrix 3.x Admin UI
31
crawler-beans.cxml
Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 03.12.2013
carwler-beans.cxml - Prinzip
crawler-beans.cxml - Erweiterungen
32 Dr. Barbara Löhle | Hritrix3.x Konfigurations-UI | 03.12.2013
Die crawler-beans.cxml ist das Konfigurations-File, mit dem der
gesamte Crawl eines Heritrix 3.x Servers definiert wird.
Die carwler-beans.cxml scheint kryptisch, konfiguriert aber den
Heritrix 3.x Crawl auf der Basis des Spring 3.x Java Frameworks,
das Heritrix 3.x zu Grunde liegt.
Wichtig ist, dass die crawler-beans.cxml als best practice
Konfigurationsfile zum Lieferumfang von Heritrix 3.x gehört, d.h.
dass der Konfigurationsumfang und die Parametrisierung im
Normalfall als gut gewählt zu betrachten ist.
Die crawler-beans.cxml ist aber nicht vollständig in Bezug auf die
existierenden Konfigurationsmöglichkeiten.
Ferner bringt Heritrix 3.x in Abhängigkeit von der Version ein
leicht abgewandeltes crawler-beans.cxml File mit.
crawler-beans.cxml - Prinzip
33 Dr. Barbara Löhle | Hritrix3.x Konfigurations-UI | 03.12.2013
crawler-beans.cxml - Prinzip
Prinzip:
Eine java Klasse, hier
org.archive.modules.deciderules.TooManyPathSegmentsDeci
deRule, besitzt eine property, hier maxPathDepth.
Bem.: Zahl der Segmente = Zahl der / in einem uriPath, z.B.
http://www.uni-konstanz.de/ = 1
Will man herausfinden, welche Auswahl an
org.archive.modules.deciderules existiert, muss man
zumindest in der API suchen:
http://builds.archive.org/javadoc/heritrix-3.x-
snapshot/org/archive/modules/deciderules/package-summary.html
34
SWBcontent Konfigurations-UI
Dr. Barbara Löhle | Heritrix3.x Konfigurations-UI | 03.12.2013
Vereinbarte Erweiterungsliste
SWBcontent Konfigurations-UI (Stand 03.12.2013)
• Minimalkonfiguration
• zusätzliche Decide-Rules
• Flow Control und Crawl Limits
35 Dr. Barbara Löhle | Hritrix3.x Konfigurations-UI | 18.12.2013
Spiegelungstiefe (TooManyHopsDecideRule: REJECT)
Spiegelungstiefe (TooManyPathSegmentsDecideRule: REJECT)
Einschluß externer Quellen, speziell zur Vervollständigung
graphischer Elemente inURLs (TransclusionDecideRule:
ACCEPT: offen)
Timeout und maximale Größe der Downloads(FetchHTTP: offen)
Delay und Bandbreite(DispositionProcessor: begonnen)
Bem.:Die Bandbreite kann nicht freigegeben werden.
Crawl Limits(Dauer und Datenmenge des Crawls;
CrawlLimitEnforcer)
Nutzung verschiedener UserAgents (done)
Vereinbarte Erweiterungsliste
36
SWBcontent Konfigurations-UI
Prinzip des SWBcontent Konfigurations-UI für Heritrix 3.x:
Einem Heritrix 3.x Crawl-Job wird ein Template crawler-
beans.cxml zu Grunde gelegt.
Mittels der Eingaben des SWBcontent Konfigurations-UI wird
das override.properties File erstellt.
Das override.properties File überrschreibt die Default Einträge
im Template crawler-beans.cxml.
Sowohl das crawler-beans.cxml als auch das
override.properties File ist für jeden Job in der Job-Tabelle
zugänglich.
Dr. Barbara Löhle | Hritrix3.x Konfigurations-UI | 19.12.2013
37 Dr. Barbara Löhle | Hritrix3.x Konfigurations-UI | 19.12.2013
Die Minimalkonfiguration enthält die wichtigsten Konfigurations-
parameter. In den meisten Fällen sind die Konfigurationspara-
meter mit Defaultwerten, d.h. jenen des crawler-beans.cxml, vor-
belegt.
In der Minimalkonfiguration muß einzig ein Eintrag unter URIs (=
seed) (Uniform Resource Identifier) vorgenommen werden,
wobei es sich bei dem ersten Eintrag um eine URL (Uniform Re-
source Locator) handeln muß. (Der mit Heritrix 3.x erzeugte
Download wird über diese URL aufgerufen.)
Zusätzliche URIs können mittels „include URIs/SURTS as prefix“
für einen Crawl zugelassen werden.
Ausführliche Diskussion des seed und von „include URIs/SURTs
as prefix“, siehe Vortrag von Gisela Mayer: Seeds und SURTs.
Diskussion des User Agent String, siehe Vortrag von mir: „User
Agent“
Minimalkonfiguration
38 Dr. Barbara Löhle | Hritrix3.x Konfigurations-UI | 19.12.2013
Minimalkonfiguration
39 Dr. Barbara Löhle | Hritrix3.x Konfigurations-UI | 19.12.2013
Zu den zusätzlichen Decide-Rules gehören einschließende und
ausschließende Regeln, die mittels Regular Expressions
formuliert werden.
Ferner werden die im Vergleich zu einschließenden seltener
benutzten ausschließenden „exclude URIs/SURTs as prefix“
aufgeführt.
Mittels der MaxPathDepth wird die maximale Zahl der Segmente
festgelegt, die der URI-Path besitzen darf, d.h. die Zahl der
Slashes („/“).
zusätzliche Decide-Rules
40 Dr. Barbara Löhle | Hritrix3.x Konfigurations-UI | 19.12.2013
zusätzliche Decide-Rules
41 Dr. Barbara Löhle | Hritrix3.x Konfigurations-UI | 19.12.2013
Im Fall des Flow Control ist bisher nur der Delay Factor para-
metrisierbar. Der Defaultwert des zum Lieferumfangs von Heri-
trix 3.x gehörenden crawler-beans.cxml Files besitzt den Wert
5.0. Für die Anwendung in SWBcontent wurde dieser Wert im
Template crawler-beans.cxml File auf den Wert 2.0 reduziert. Der
Delay Factor gibt an, um welches Vielfache die bei dem letzten
Download einer URI eines Web-Servers aufgewendete Zeit
gewartet werden soll, bis derselbe Web-Server wieder kontaktiert
werden darf.
Die unter Crawl Limits aufgeführten Obergrenzen für die
Downloadgröße sowie für die Laufzeit besitzen als Default den
Wert 0. Der Wert 0 steht hier im Sinne einer Konvention für einen
unbegrenzten Download-Umfang sowie für eine unbe-grenzte
Laufzeit. Mittels kleiner Werte für den Download-Umfang
und/oder für die Laufzeit sind kurze Testläufe möglich.
Flow Control und Crawl Limits
42 Dr. Barbara Löhle | Hritrix3.x Konfigurations-UI | 19.12.2013
Flow Control und Crawl Limits