22.11.2013 Aufrufe

Bibliotheksdienste fr ein Studierendenportal an der Uni Oldenburg

Bibliotheksdienste fr ein Studierendenportal an der Uni Oldenburg

Bibliotheksdienste fr ein Studierendenportal an der Uni Oldenburg

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

PG.Portal<br />

<strong>Bibliotheksdienste</strong> für <strong>ein</strong><br />

<strong>Studierendenportal</strong> <strong>an</strong> <strong>der</strong> <strong>Uni</strong> <strong>Oldenburg</strong><br />

Endbericht<br />

18. April 2006<br />

Teilnehmer<br />

Timo Albrecht B.Sc., Timo Bernack B.Sc., J<strong>an</strong>-Christi<strong>an</strong> Denker,<br />

Alex<strong>an</strong><strong>der</strong> Duscheleit, Christoph Jobelius, Dipl.-Inform. (FH) Steph<strong>an</strong> Kraft,<br />

Bo Li, Michael Riehem<strong>an</strong>n, Herm<strong>an</strong>n Schulte-Borchers, Miriam Wolff,<br />

Ahmed Youssefi und Ling Zou<br />

Betreuer<br />

Apl. Prof. Dr. Jürgen Sauer<br />

Dr.-Ing. Fr<strong>an</strong>k Oldenettel<br />

Dipl.-Inf. Nico Müller<br />

Dipl.-Inf. (FH) Sabine Müller


Zusammenfassung<br />

Dieser Endbericht beschreibt die Entwicklung <strong>der</strong> Projektgruppe Ein <strong>Studierendenportal</strong><br />

für die <strong>Uni</strong> <strong>Oldenburg</strong> <strong>der</strong> Abteilung Praktische Informatik <strong>an</strong> <strong>der</strong> Carl von Ossietzky<br />

<strong>Uni</strong>versität <strong>Oldenburg</strong>. Während des <strong>ein</strong>jährigen Projekts wurde für <strong>ein</strong> neues<br />

i 3 sic-<strong>Studierendenportal</strong> <strong>der</strong> <strong>Uni</strong>versität <strong>Oldenburg</strong> <strong>ein</strong> auf das <strong>Oldenburg</strong>er Regionales<br />

Bibliotheks- und Informationssystem (ORBIS) und ausgewählte externe digitale Bibliotheken<br />

zugeschnittener, auf Portlets basieren<strong>der</strong> Bibliotheksdienst neu entwickelt und in<br />

das Portal namens Liferay integriert. Dieser Dienst soll jedem Benutzer aus dem Portal<br />

heraus <strong>ein</strong>e bequeme, individualisierbare Recherche im Best<strong>an</strong>d lokaler und verschiedener<br />

digitaler Bibliotheken ermöglichen.<br />

Der vorliegende Bericht b<strong>ein</strong>haltet neben allen Seminararbeiten und <strong>der</strong> Anfor<strong>der</strong>ungsde-<br />

nition umf<strong>an</strong>greiche Informationen zum Entwurf und <strong>der</strong> <strong>an</strong>schlieÿenden Implementierung.<br />

Abstract<br />

This report represents the development of the project group A students' portal for the<br />

<strong>Uni</strong>versity of <strong>Oldenburg</strong> at the Practical Computer Science Group of the Carl von Ossietzky<br />

<strong>Uni</strong>versity of <strong>Oldenburg</strong>. During this one year project a library service was developed<br />

for a new i 3 sic students' portal of the <strong>Uni</strong>versity of <strong>Oldenburg</strong>. It is tailored to<br />

the <strong>Oldenburg</strong>er Regionales Bibliotheks- und Informationssystem (ORBIS) as well as<br />

to h<strong>an</strong>d-picked external digital libraries, furthermore based on portlets <strong>an</strong>d integrated in<br />

the portal called Liferay. This service enables every user a comfortable, individualizable<br />

search within the stock of local <strong>an</strong>d various digital libraries.<br />

The present report contains, besides all our student research projects <strong>an</strong>d our requirement<br />

denition, extensive information on our draft <strong>an</strong>d the subsequent implementation.


Inhaltsverzeichnis<br />

1 Einleitung 13<br />

1.1 Die Projektgruppe PG.Portal . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

1.2 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

1.3 Überblick über den Endbericht . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

I Seminarausarbeitungen 17<br />

2 Was ist <strong>ein</strong> Web-Projekt 19<br />

2.1 Was ist <strong>ein</strong> Webprojekt? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />

2.2 Wie unterscheiden sich Webprojekte von<strong>ein</strong><strong>an</strong><strong>der</strong>? . . . . . . . . . . . . . . 19<br />

2.3 Wer bestimmt in <strong>ein</strong>em Webprojekt? . . . . . . . . . . . . . . . . . . . . . 20<br />

2.4 Was ist zu tun? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

2.5 Wer ist <strong>an</strong> <strong>ein</strong>em Webprojekt beteiligt? . . . . . . . . . . . . . . . . . . . . 24<br />

2.6 Was macht den Erfolg aus? . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />

2.7 Was macht die Kosten aus? . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />

2.8 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />

3 Pl<strong>an</strong>ung von Web-Projekten 29<br />

3.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

3.1.1 Allgem<strong>ein</strong>e Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

3.1.2 Strukturelle Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

3.2 Wie genau sind die Kosten pl<strong>an</strong>bar . . . . . . . . . . . . . . . . . . . . . . 29<br />

3.3 Schätzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30<br />

3.3.1 Das Ergebnis <strong>ein</strong>er Schätzung . . . . . . . . . . . . . . . . . . . . . 30<br />

3.3.2 Erstellen <strong>ein</strong>er Schätzung . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

3.3.3 Erfahrungswerte zum Vergleichen . . . . . . . . . . . . . . . . . . . 33<br />

3.3.4 Typische Schätzfehler . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />

3.4 Allgem<strong>ein</strong>e Einführung zu Schätzmethoden . . . . . . . . . . . . . . . . . . 34<br />

3.4.1 Methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

3.4.2 Strategien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />

3.4.3 Wahl <strong>der</strong> Schätzmethoden . . . . . . . . . . . . . . . . . . . . . . . 35<br />

3.5 Schätzung im Team . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />

3


Inhaltsverzeichnis<br />

3.5.1 Leitung <strong>der</strong> Schätzung im Team . . . . . . . . . . . . . . . . . . . . 35<br />

3.5.2 Anfor<strong>der</strong>ungen <strong>an</strong> <strong>der</strong> Projektleitung . . . . . . . . . . . . . . . . . 36<br />

3.5.3 Teamentwicklung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />

3.5.4 Mögliche Gestaltung <strong>ein</strong>es Teamtres . . . . . . . . . . . . . . . . . 37<br />

3.6 Projektpl<strong>an</strong> und Mitarbeiter<strong>ein</strong>satz . . . . . . . . . . . . . . . . . . . . . . 38<br />

3.6.1 Projektpl<strong>an</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38<br />

3.6.2 Mitarbeiter<strong>ein</strong>satz . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />

3.7 Iteratives Vorgehen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

3.8 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />

4 Softwarearchitektur und Konzeption <strong>der</strong> Anwendungsschicht 42<br />

4.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42<br />

4.2 Softwarearchitektur und Komponenten . . . . . . . . . . . . . . . . . . . . 42<br />

4.3 Konzepte und Technologien . . . . . . . . . . . . . . . . . . . . . . . . . . 43<br />

4.3.1 J2EE Multi-Schichten-Architektur . . . . . . . . . . . . . . . . . . . 43<br />

4.3.2 Technologien <strong>der</strong> Anwendungsschicht . . . . . . . . . . . . . . . . . 43<br />

4.4 Entwurfsmuster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />

4.4.1 Session-Façade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />

4.4.2 Data Tr<strong>an</strong>sfer Objects . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

4.5 Fazit und Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

5 Entwurf und Implementierung von Websystemen 51<br />

5.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51<br />

5.2 Web Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />

5.3 Entwurf von Web-Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . 53<br />

5.3.1 Modellgetriebene Top-Down-Entwicklung . . . . . . . . . . . . . . . 53<br />

5.3.2 Technologiegetriebene Bottom-Up-Entwicklung . . . . . . . . . . . 56<br />

5.3.3 Strategien zur Architekturbildung . . . . . . . . . . . . . . . . . . . 58<br />

5.4 Technologien und St<strong>an</strong>dards <strong>der</strong> Implementierung . . . . . . . . . . . . . . 59<br />

5.5 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />

6 Einführung in Portale und Portlets 62<br />

6.1 Was sind Portale und warum nutzt m<strong>an</strong> sie? . . . . . . . . . . . . . . . . . 62<br />

6.1.1 Historisches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />

6.1.2 Portale sind wie <strong>ein</strong> Einkaufszentrum... . . . . . . . . . . . . . . . . 62<br />

6.1.3 Was macht Portale aus? . . . . . . . . . . . . . . . . . . . . . . . . 63<br />

6.1.4 Theoretisches Konzept . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />

6.2 Technische und ökonomische Vorteile von Portalen . . . . . . . . . . . . . . 64<br />

6.3 Möglichkeiten von und in Portalen . . . . . . . . . . . . . . . . . . . . . . 66<br />

6.4 Was ist bei <strong>der</strong> Entwicklung von Portalen zu beachten? . . . . . . . . . . . 69<br />

6.5 Was sind Portlets? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69<br />

4


Inhaltsverzeichnis<br />

6.6 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />

7 Java Portlet API JSR168 71<br />

7.1 Portlet API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />

7.1.1 Container Contract und Lifecycle . . . . . . . . . . . . . . . . . . . 72<br />

7.1.2 Window-State und Portlet-Mode . . . . . . . . . . . . . . . . . . . 73<br />

7.1.3 Die Verwaltung von Portlet-Preferences . . . . . . . . . . . . . . . . 74<br />

7.1.4 Benutzerinformationen . . . . . . . . . . . . . . . . . . . . . . . . . 75<br />

7.1.5 Packaging und Deployment . . . . . . . . . . . . . . . . . . . . . . 75<br />

7.1.6 Sicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77<br />

7.1.7 JSP Tags zur Untersttzung bei <strong>der</strong> Portlet Entwicklung . . . . . . . 77<br />

7.2 Web Service for Remote Portlets (WSRP) . . . . . . . . . . . . . . . . . . 78<br />

8 Die Portal-Plattform Liferay 80<br />

8.1 Was ist Liferay? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80<br />

8.2 Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81<br />

8.2.1 Themes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81<br />

8.2.2 Personalisierbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . 81<br />

8.2.3 CMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82<br />

8.2.4 Single-Sign-On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />

8.2.5 Einsatz von Spring . . . . . . . . . . . . . . . . . . . . . . . . . . . 84<br />

8.2.6 Hibernate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84<br />

8.2.7 verschiedene Sprachmodule . . . . . . . . . . . . . . . . . . . . . . . 84<br />

8.2.8 Skalierbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

8.2.9 Benutzergruppen und Rechtem<strong>an</strong>agement . . . . . . . . . . . . . . 85<br />

8.3 Technologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

8.4 Systemarchitektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br />

8.4.1 Traditioneller Web-zugri . . . . . . . . . . . . . . . . . . . . . . 87<br />

8.4.2 Liferay als Web-Service-Provi<strong>der</strong> . . . . . . . . . . . . . . . . . . . 88<br />

8.5 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88<br />

9 Einführung in digitale Bibliotheken 89<br />

9.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89<br />

9.2 Digitale Bibliotheken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90<br />

9.2.1 Vor- und Nachteile . . . . . . . . . . . . . . . . . . . . . . . . . . . 91<br />

9.2.2 Kosten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92<br />

9.2.3 Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92<br />

9.2.4 Grundlegende Konzepte . . . . . . . . . . . . . . . . . . . . . . . . 94<br />

9.3 Katalogisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95<br />

9.4 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97<br />

5


Inhaltsverzeichnis<br />

10 Aufgaben und Formen digitaler Bibliotheken 98<br />

10.1 Probleme konventioneller Bibliotheken . . . . . . . . . . . . . . . . . . . . 98<br />

10.2 Aufgaben <strong>ein</strong>er digitale Bibliothek . . . . . . . . . . . . . . . . . . . . . . . 99<br />

10.2.1 Sicht heutiger Bibliotheksnutzer . . . . . . . . . . . . . . . . . . . . 99<br />

10.2.2 Sicht <strong>der</strong> wissenschaftlichen Forschung . . . . . . . . . . . . . . . . 100<br />

10.2.3 Marktwirtschaftliche Sicht . . . . . . . . . . . . . . . . . . . . . . . 100<br />

10.3 Produkte <strong>ein</strong>er digitalen Bibliothek . . . . . . . . . . . . . . . . . . . . . . 101<br />

10.4 Dienstleistungen <strong>ein</strong>er digitalen Bibliothek . . . . . . . . . . . . . . . . . . 102<br />

10.5 Org<strong>an</strong>isationsformen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103<br />

10.6 Ersch<strong>ein</strong>ungsform als Web-Portal . . . . . . . . . . . . . . . . . . . . . . . 105<br />

10.7 Eine mögliche technische Realisierung . . . . . . . . . . . . . . . . . . . . . 106<br />

10.8 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109<br />

11 Verteilte und för<strong>der</strong>ierte digitale Bibliotheken 110<br />

11.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110<br />

11.1.1 Digital Bibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110<br />

11.1.2 Verteilte bzw. fö<strong>der</strong>ierte digitale Bibliotheken . . . . . . . . . . . . 110<br />

11.2 Vorgehensweisen zur Fö<strong>der</strong>ation von digitalen Bibliotheken . . . . . . . . . 111<br />

11.3 Prinzipieller Ansatz zur Fö<strong>der</strong>ation digitaler Bibliotheken . . . . . . . . . . 111<br />

11.3.1 5-Ebenen-Schema-Architektur . . . . . . . . . . . . . . . . . . . . . 112<br />

11.3.2 Mediator-Wrapper-Prinzip . . . . . . . . . . . . . . . . . . . . . . . 113<br />

11.4 Verschiedene Architektur<strong>an</strong>sätze . . . . . . . . . . . . . . . . . . . . . . . . 114<br />

11.4.1 InfoBus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114<br />

11.4.2 eVerlag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115<br />

11.4.3 OMNIS/2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117<br />

11.4.4 BlueView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118<br />

11.4.5 DAFFODIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119<br />

11.5 Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120<br />

11.6 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120<br />

12 Metadaten 122<br />

12.1 Denition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122<br />

12.2 Kategorien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122<br />

12.2.1 Administrative Metadaten . . . . . . . . . . . . . . . . . . . . . . . 123<br />

12.2.2 Deskriptive Metadaten . . . . . . . . . . . . . . . . . . . . . . . . . 123<br />

12.2.3 Erhaltungsdienliche Metadaten . . . . . . . . . . . . . . . . . . . . 123<br />

12.2.4 Technische Metadaten . . . . . . . . . . . . . . . . . . . . . . . . . 123<br />

12.2.5 Nutzungsrelev<strong>an</strong>te Metadaten . . . . . . . . . . . . . . . . . . . . . 124<br />

12.3 Bibliotheksmetadaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124<br />

12.4 Generierung von Metadaten . . . . . . . . . . . . . . . . . . . . . . . . . . 124<br />

12.4.1 Experten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125<br />

6


Inhaltsverzeichnis<br />

12.4.2 Automatische Generierung . . . . . . . . . . . . . . . . . . . . . . . 125<br />

12.5 Zweck von Metadaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125<br />

12.6 Speicherung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126<br />

12.7 Fragen/Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126<br />

12.8 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127<br />

12.8.1 MARC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127<br />

12.8.2 MAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127<br />

12.8.3 Dublin Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128<br />

12.8.4 MABxml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129<br />

12.9 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129<br />

13 Metadatenst<strong>an</strong>dards 130<br />

13.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130<br />

13.2 Metadatenst<strong>an</strong>dards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130<br />

13.2.1 Dublin Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130<br />

13.2.2 MARC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131<br />

13.2.3 MARCXML und MODS . . . . . . . . . . . . . . . . . . . . . . . . 133<br />

13.2.4 EAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134<br />

13.2.5 METS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135<br />

13.2.6 OAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136<br />

13.3 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138<br />

13.4 Anh<strong>an</strong>g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138<br />

13.4.1 METS Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138<br />

II Ergebnisdokumente <strong>der</strong> Softwareentwicklung 141<br />

14 Bewertung von bestehenden <strong>Bibliotheksdienste</strong>n 143<br />

14.1 St<strong>an</strong>dardfunktionalität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144<br />

14.1.1 Ausleihe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144<br />

14.1.2 Verlängerung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144<br />

14.1.3 Vorbestellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145<br />

14.1.4 Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145<br />

14.1.5 Online-Hilfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145<br />

14.1.6 Benutzerkonto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146<br />

14.2 Strukturdarstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147<br />

14.2.1 Mahnungsverwaltung / Benachrichtigungsfunktion . . . . . . . . . . 147<br />

14.2.2 Fernleihe (Vorbereitung) . . . . . . . . . . . . . . . . . . . . . . . . 147<br />

14.2.3 Logische und räumliche Trennung von eigenen und <strong>fr</strong>emden Inhalten 148<br />

14.2.4 Ergonomie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148<br />

14.3 Suchfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149<br />

7


Inhaltsverzeichnis<br />

14.3.1 Explorative Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149<br />

14.3.2 Suchmaske . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150<br />

14.3.3 Websuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150<br />

14.4 Suchraum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150<br />

14.4.1 Global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151<br />

14.4.2 Lokal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151<br />

14.4.3 Suchkriterien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151<br />

14.5 Medientyp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152<br />

14.5.1 Formal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152<br />

14.5.2 Inhaltlich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152<br />

14.6 Suchmaske . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153<br />

14.6.1 Nutzung aller möglichen Suchkriterien . . . . . . . . . . . . . . . . 153<br />

14.6.2 Nutzerklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153<br />

14.6.3 Suchassistent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153<br />

14.6.4 Auswahl des Suchraums . . . . . . . . . . . . . . . . . . . . . . . . 154<br />

14.6.5 Auswahl <strong>der</strong> Medientypen . . . . . . . . . . . . . . . . . . . . . . . 154<br />

14.7 Ergebnispräsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154<br />

14.7.1 Sortierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154<br />

14.7.2 Detaillierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155<br />

14.7.3 Bereitstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155<br />

15 Anfor<strong>der</strong>ungsdenition 157<br />

15.1 Ausg<strong>an</strong>gssituation, Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . 157<br />

15.2 System<strong>ein</strong>satz und Zielumgebung . . . . . . . . . . . . . . . . . . . . . . . 158<br />

15.3 Funktionale Anfor<strong>der</strong>ungen . . . . . . . . . . . . . . . . . . . . . . . . . . 158<br />

15.3.1 Benutzerklassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158<br />

15.3.2 Anwendungsfälle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159<br />

15.3.3 Funktionalität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161<br />

15.4 Nichtfunktionale Anfor<strong>der</strong>ungen . . . . . . . . . . . . . . . . . . . . . . . . 173<br />

15.5 Benutzungsoberäche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174<br />

15.5.1 Allgem<strong>ein</strong>es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174<br />

15.5.2 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175<br />

15.5.3 Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175<br />

15.5.4 Ergebnisausgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176<br />

15.5.5 Benutzerkonto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178<br />

15.5.6 mögliche Erweiterungen . . . . . . . . . . . . . . . . . . . . . . . . 181<br />

15.6 Fehlerverhalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182<br />

15.7 Dokumentations<strong>an</strong>for<strong>der</strong>ungen . . . . . . . . . . . . . . . . . . . . . . . . . 182<br />

15.8 Akzept<strong>an</strong>zkriterien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183<br />

16 Entwurf 184<br />

8


Inhaltsverzeichnis<br />

16.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184<br />

16.2 Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185<br />

16.2.1 Technologiewahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185<br />

16.2.2 Umzusetzende Anwendungs-Architektur . . . . . . . . . . . . . . . 188<br />

16.3 Suchlogik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195<br />

16.3.1 Aufgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195<br />

16.3.2 Technologien und Modelle . . . . . . . . . . . . . . . . . . . . . . . 196<br />

16.3.3 Klassenbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . 198<br />

16.3.4 Dynamikbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . 200<br />

16.4 Mediator / Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200<br />

16.4.1 Aufgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201<br />

16.4.2 Die verschiedenen Quellen . . . . . . . . . . . . . . . . . . . . . . . 201<br />

16.4.3 Entwicklungsgeschichte . . . . . . . . . . . . . . . . . . . . . . . . . 202<br />

16.4.4 Technologien und Modelle . . . . . . . . . . . . . . . . . . . . . . . 202<br />

16.4.5 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209<br />

16.5 Benutzerkonto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209<br />

16.5.1 Technologien und Modelle . . . . . . . . . . . . . . . . . . . . . . . 209<br />

16.5.2 Klassenbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . 209<br />

16.5.3 Dynamikbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . 211<br />

16.6 Benutzungsoberäche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218<br />

16.6.1 Client-seitige Darstellung . . . . . . . . . . . . . . . . . . . . . . . . 218<br />

16.6.2 Portletaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226<br />

16.6.3 JSP-Beschreibungen (Server-seitige Darstellung) . . . . . . . . . . . 227<br />

16.7 Datenb<strong>an</strong>kmodellierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228<br />

16.7.1 UserAccount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228<br />

16.7.2 OAI-Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229<br />

16.8 Testablauf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230<br />

16.8.1 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230<br />

16.8.2 Testverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230<br />

16.8.3 Testgegenst<strong>an</strong>d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231<br />

16.8.4 Testmethoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231<br />

17 Implementierung 234<br />

17.1 Datenstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234<br />

17.1.1 Das Package org.pgportal.ejb.dto . . . . . . . . . . . . . . . . . 235<br />

17.1.2 Das Package org.pgportal.ejb.mediator . . . . . . . . . . . . . . 241<br />

17.1.3 Das Package org.pgportal.ejb.search . . . . . . . . . . . . . . . 241<br />

17.1.4 Das Package org.pgportal.ejb.wrapper . . . . . . . . . . . . . . 241<br />

17.1.5 Das Package org.pgportal.ejb.userAccount . . . . . . . . . . . . 241<br />

17.1.6 Das Package org.pgportal.ejb.util . . . . . . . . . . . . . . . . 241<br />

17.2 Suchlogik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241<br />

9


Inhaltsverzeichnis<br />

17.2.1 Methoden zur Suche und Sortierung . . . . . . . . . . . . . . . . . . 242<br />

17.2.2 Methoden zur Filterung und Datenber<strong>ein</strong>igung . . . . . . . . . . . . 242<br />

17.2.3 Methoden zur Relev<strong>an</strong>zbestimmung . . . . . . . . . . . . . . . . . . 243<br />

17.2.4 Methoden zur Speicherung <strong>der</strong> Such-Chronik . . . . . . . . . . . . . 244<br />

17.2.5 EJB-spezische Methoden . . . . . . . . . . . . . . . . . . . . . . . 245<br />

17.2.6 Klassenbeschreibung . . . . . . . . . . . . . . . . . . . . . . . . . . 245<br />

17.3 Mediator / Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246<br />

17.3.1 Mediator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246<br />

17.3.2 Methoden des Mediators . . . . . . . . . . . . . . . . . . . . . . . . 247<br />

17.3.3 Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248<br />

17.3.4 SRU-Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248<br />

17.3.5 OAI-Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249<br />

17.4 Benutzerkonto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252<br />

17.5 Benutzungsoberäche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255<br />

17.6 Erläuterungen zum Testverlauf . . . . . . . . . . . . . . . . . . . . . . . . 261<br />

18 H<strong>an</strong>dbuch 264<br />

18.1 Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264<br />

18.1.1 Einfache Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264<br />

18.1.2 Erweiterte Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265<br />

18.1.3 Such-Chronik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266<br />

18.1.4 Ergebnis<strong>an</strong>zeige . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267<br />

18.2 Benutzerkonto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268<br />

18.2.1 Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268<br />

18.2.2 Dokumentenübersicht . . . . . . . . . . . . . . . . . . . . . . . . . . 269<br />

18.2.3 Persönliche Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270<br />

18.3 Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270<br />

18.3.1 Hauptnavigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270<br />

18.3.2 Navigation innerhalb <strong>der</strong> Seiten . . . . . . . . . . . . . . . . . . . . 271<br />

19 Zusammenfassung und Bewertung 272<br />

19.1 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272<br />

19.2 Erfahrungsberichte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273<br />

19.2.1 Vorbereitungsphase . . . . . . . . . . . . . . . . . . . . . . . . . . . 273<br />

19.2.2 Seminarphase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274<br />

19.2.3 Erstellung des Kriterienkatalogs . . . . . . . . . . . . . . . . . . . . 274<br />

19.2.4 Anfor<strong>der</strong>ungsdenition . . . . . . . . . . . . . . . . . . . . . . . . . 275<br />

19.2.5 Entwurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275<br />

19.2.6 Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277<br />

19.3 Bewertung und Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277<br />

19.4 D<strong>an</strong>ksagungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279<br />

10


Inhaltsverzeichnis<br />

III Anh<strong>an</strong>g 281<br />

A Inhalt <strong>der</strong> DVD 283<br />

B Das Departmentfussballturnier 2005 285<br />

C Glossar 287<br />

D Verzeichnisse 295<br />

Abbildungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295<br />

Tabellenverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299<br />

Listingverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300<br />

Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301<br />

11


1. Einleitung<br />

Bei diesem Dokument h<strong>an</strong>delt es sich um den Endbericht <strong>der</strong> Projektgruppe PG.Portal.<br />

Der Endbericht ist das Abschlussdokument des Projektes und gibt <strong>ein</strong>en Überblick <strong>der</strong><br />

Arbeit und <strong>der</strong> Ergebnisse. In <strong>der</strong> Einleitung wird zunächst die Projektgruppe vorgestellt.<br />

D<strong>an</strong>ach wird die Motivation für die Arbeit erläutert und abschliessend die Struktur des<br />

Endberichtes vorgestellt.<br />

1.1. Die Projektgruppe PG.Portal<br />

In <strong>der</strong> Studienordnung für den Studieng<strong>an</strong>g Informatik <strong>der</strong> Carl von Ossietzky <strong>Uni</strong>versität<br />

<strong>Oldenburg</strong> ist im vierten Studienjahr die Durchführung <strong>ein</strong>er Projektgruppe vorgesehen.<br />

Das Projekt hat <strong>ein</strong>e Dauer von zwei Semestern und <strong>ein</strong>en Umf<strong>an</strong>g von 24 Kreditpunkten<br />

(bzw. vier Modulen). Ziel <strong>der</strong> Projektgruppe ist es, <strong>ein</strong>e Arbeit in <strong>ein</strong>em Team zu entwickeln<br />

und die damit verbundenen Wege und Mittel <strong>der</strong> Kommunikation und Org<strong>an</strong>isation<br />

in gröÿeren Arbeitsgruppen zu erlernen.<br />

Die Projektgruppe PG.Portal besteht aus zwölf Studierenden und vier Betreuern. Zusätzlich<br />

wurde die Projektgruppe noch von Mitarbeitern <strong>der</strong> <strong>Uni</strong>versitätsbibliothek beraten<br />

und unterstützt. Ziel des Projektes war die Entwicklung von <strong>Bibliotheksdienste</strong>n für <strong>ein</strong><br />

<strong>Studierendenportal</strong> <strong>an</strong> <strong>der</strong> <strong>Uni</strong>versität <strong>Oldenburg</strong>. Der Bibliotheksdienst soll den Studierenden<br />

als Teil <strong>ein</strong>es Portals <strong>an</strong>geboten werden. Dabei sollten die Funktionen des schon<br />

bestehenden <strong>Bibliotheksdienste</strong>s weitgehend übernommen und sinnvolle Erweiterungen<br />

integriert werden.<br />

Die Projektgruppe startete mit <strong>ein</strong>er Seminarphase, in <strong>der</strong> jedes Mitglied <strong>der</strong> Projektgruppe<br />

<strong>ein</strong>en Vortrag und <strong>ein</strong>e Ausarbeitung zu ausgewählten und projektrelev<strong>an</strong>ten Themen<br />

vorbereiten und präsentieren musste. Im Anschluss <strong>an</strong> die Seminarphase wurden <strong>an</strong>h<strong>an</strong>d<br />

<strong>ein</strong>es Kriterienkataloges bestehende <strong>Bibliotheksdienste</strong> bewertet und die Ergebnisse <strong>an</strong>alysiert.<br />

Auf Grundlage dieser Ergebnis<strong>an</strong>alyse wurde die Anfor<strong>der</strong>ungsdenition erstellt<br />

und <strong>ein</strong> entsprechendes Dokument <strong>an</strong>gefertigt. Als nächstes wurden wichtige Entscheidungen<br />

für die Systemarchitektur getroen und <strong>ein</strong> erster Prototyp entwickelt. Mit den<br />

aus <strong>der</strong> Entwicklung des Prototyps gesammelten Erfahrungen wurde <strong>der</strong> Systementwurf<br />

konkretisiert und das Entwurfsdokument <strong>an</strong>gefertigt.<br />

Bei <strong>der</strong> Implementierung wurde die Projektgruppe entsprechend <strong>der</strong> zu entwickelnden<br />

Einzelkomponenten in vier Untergruppen aufgeteilt. Die <strong>ein</strong>zelnen Gruppen waren für das<br />

Benutzerkonto (Verwaltung <strong>der</strong> Benutzer<strong>ein</strong>stellungen), Mediator/Wrapper (Kommunikation<br />

mit verschiedenen Bibliothekssystemen), die Suchlogik (Suchfunktion und Ergebnisr<strong>an</strong>king)<br />

und die Benutzungsoberäche zuständig.<br />

13


KAPITEL 1. EINLEITUNG<br />

1.2. Motivation<br />

Die <strong>Uni</strong>versität bietet den Studierenden verschiedene verwaltungstechnische Dienste (z.B.<br />

Rückmeldung, Klausur<strong>an</strong>meldung und Noten<strong>ein</strong>sicht) und Dienstleistungen (z.B. Internetzug<strong>an</strong>g<br />

und Bibliotheksfunktionen) über das Internet <strong>an</strong>. Damit <strong>der</strong> Student diese<br />

Dienste in Anspruch nehmen k<strong>an</strong>n, muss er sich in den verschiedenen Institutionen, die<br />

den entsprechenden Dienst <strong>an</strong>bieten, <strong>an</strong>melden und die zur Authentizierung nötigen<br />

Benutzernamen und Passwörter zugeteilt bekommen. Die <strong>ein</strong>zelnen Dienste haben unterschiedliche<br />

Benutzungsoberächen und sind unter verschiedenen URLs erreichbar.<br />

Da es für den Benutzer sehr umständlich ist, sich für jeden Dienst jeweils Internetadresse,<br />

Benutzernamen und Passwort zu merken, wird in <strong>ein</strong>em länger<strong>fr</strong>istig <strong>an</strong>gelegten, geför<strong>der</strong>ten<br />

Entwicklungsprojekt mit dem Namen i 3 sic! <strong>ein</strong> <strong>Studierendenportal</strong> entwickelt. In<br />

diesem Portal werden die für das Studium wichtigen Prozesse zusammengefasst <strong>an</strong>geboten.<br />

Somit wird es dem Studenten ermöglicht, auf alle wichtigen Informationen und<br />

verwaltungstechnischen Dienste zuzugreifen. Das <strong>Studierendenportal</strong> ermöglicht es den<br />

Benutzern auÿerdem, ihre Benutzungsoberäche <strong>an</strong> die eigenen Bedürfnisse <strong>an</strong>zupassen<br />

und so schnell und problemlos alle Dienste zu nutzen, ohne sich bei jedem Subsystem<br />

geson<strong>der</strong>t authentizieren zu müssen. Weitere Informationen zum i 3 sic!-Projekt können<br />

in dem dazugehörigen Projektbericht nachgelesen werden.<br />

Der von <strong>der</strong> Projektgruppe zu entwickelnde Bibliotheksdienst soll in dieses <strong>Studierendenportal</strong><br />

integriert werden. Der Haupt<strong>an</strong>teil liegt hierbei in <strong>der</strong> Ausarbeitung <strong>ein</strong>er eektiven<br />

Suchfunktion mit <strong>ein</strong>er sinnvollen Präsentation <strong>der</strong> Suchergebnisse auf <strong>ein</strong>em Bibliothekskatalog.<br />

Dabei liegt <strong>der</strong> Schwerpunkt in <strong>der</strong> Integration des <strong>Oldenburg</strong>er Regionales<br />

Bibliotheks- und Informationssystem, kurz ORBIS. Es sollen aber auch externe Online-<br />

Bibliotheken <strong>ein</strong>gebunden werden. Im Vor<strong>der</strong>grund steht zudem noch die Entwicklung<br />

<strong>ein</strong>er benutzer<strong>fr</strong>eundlichen und innovativen Arbeitsumgebung.<br />

1.3. Überblick über den Endbericht<br />

Dieser Endbericht ist in zwei Hauptteile aufgeteilt. Nach <strong>der</strong> Einleitung folgen im ersten<br />

Teil die Seminarausarbeitungen. Jedes Projektgruppenmitglied musste sich in <strong>der</strong> Seminarphase<br />

mit <strong>ein</strong>em für das Projekt relev<strong>an</strong>ten Thema aus<strong>ein</strong><strong>an</strong><strong>der</strong> setzen und dazu <strong>ein</strong>e<br />

Ausarbeitung <strong>an</strong>fertigen.<br />

Der zweite Teil b<strong>ein</strong>haltet die Ergebnisdokumente <strong>der</strong> Softwareentwicklung. Dieser Teil<br />

glie<strong>der</strong>t sich in die Abschnitte Bewertung von bestehenden <strong>Bibliotheksdienste</strong>n, Anfor<strong>der</strong>ungsdenition,<br />

Entwurf, Implementierung und Zusammenfassung/Bewertung. Dabei<br />

wurden zuerst <strong>an</strong>h<strong>an</strong>d <strong>ein</strong>es von <strong>der</strong> Projektgruppe entwickelten Kriterienkataloges bestehende<br />

<strong>Bibliotheksdienste</strong> bewertet und die Ergebnisse <strong>an</strong>alysiert. Die Anfor<strong>der</strong>ungsde-<br />

nition besteht aus acht Kapiteln und beschreibt neben Ausg<strong>an</strong>gssituation/Zielsetzung<br />

und System<strong>ein</strong>satz/Zielumgebung im Schwerpunkt die funktionalen und nichtfunktionalen<br />

Anfor<strong>der</strong>ungen. Ausserdem werden die Anfor<strong>der</strong>ungen <strong>an</strong> die Benutzungsoberäche im<br />

Fall von Fehlerverhalten und die Dokumentation beschrieben. Den Abschluss bilden die<br />

Akzept<strong>an</strong>zkriterien. Der nächste Abschnitt stellt den konzeptionellen Entwurf des Biblio-<br />

14


1.3. ÜBERBLICK ÜBER DEN ENDBERICHT<br />

theksdienstes dar und glie<strong>der</strong>t sich in die Teile Architektur, Suchlogik, Mediator/Wrapper,<br />

Benutzerkonto, Benutzungsoberäche, Datenb<strong>an</strong>kmodellierung und Testablauf. Als<br />

nächstes folgt <strong>der</strong> Abschnitt Implementierung. Mit dem Kapitel Zusammenfassung und<br />

Bewertung wird das Dokument abgeschlossen.<br />

15


Teil I.<br />

Seminarausarbeitungen<br />

17


2. Was ist <strong>ein</strong> Web-Projekt<br />

2.1. Was ist <strong>ein</strong> Webprojekt?<br />

Woher soll m<strong>an</strong> wissen, w<strong>an</strong>n m<strong>an</strong> <strong>an</strong>gekommen ist, wenn m<strong>an</strong> nicht weiÿ, wohin m<strong>an</strong><br />

geht? Aus diesem Grund sollte zuerst allgem<strong>ein</strong> <strong>ein</strong> Projekt, wenn es erfolgreich werden<br />

soll, genauer deniert werden. Genauer gesagt, es werden <strong>ein</strong> Start- und <strong>ein</strong> Fertigstellungsdatum<br />

benötigt. Zum Fertigstellungsdatum sollten das <strong>an</strong>f<strong>an</strong>gs denierte Erfolgsziel<br />

nebst <strong>ein</strong>er zuvor erstellten Ergebnisliste erfüllt s<strong>ein</strong>. Nicht zuletzt darf <strong>ein</strong> ver<strong>ein</strong>barter<br />

monetärer Rahmen nicht überschritten werden. Im Vor<strong>der</strong>grund steht zudem <strong>der</strong> Kunde<br />

als Auftraggeber, <strong>der</strong> zu<strong>fr</strong>iedenzustellen ist.<br />

Nach <strong>ein</strong>er allgem<strong>ein</strong>en Projektdenition k<strong>an</strong>n jetzt <strong>der</strong> Begri Webprojekt im Speziellen<br />

betrachtet werden. Hierbei h<strong>an</strong>delt es sich um <strong>ein</strong> Projekt zur Erstellung o<strong>der</strong> Modizierung<br />

<strong>ein</strong>er Website, das in <strong>der</strong> Schnittmenge von IT- und Designprojekten <strong>an</strong>zusiedeln<br />

ist. Schlieÿlich soll <strong>ein</strong>e Website nicht nur gut funktionieren, son<strong>der</strong>n auch gut aussehen.<br />

Webprojekte unterscheiden sich zum Teil grundlegend von <strong>an</strong><strong>der</strong>en Projekten im Dienstleistungssektor.<br />

So soll die Projektdauer bestenfalls <strong>ein</strong> halbes Jahr nicht überschreiten,<br />

wobei aus Attraktivitätsgründen <strong>der</strong> Content (Inhalt) <strong>der</strong> Website nach Fertigstellung<br />

ständig gepegt bzw. aktuell gehalten werden soll, was oft nicht weniger kostenintensiv<br />

ist als das Projekt <strong>an</strong> sich. Da mit <strong>ein</strong>er Website zumeist Menschen unterschiedlichster<br />

Eigenschaften <strong>an</strong>gesprochen werden, sollte sie für alle nutzbar s<strong>ein</strong> und <strong>an</strong>sprechend<br />

wirken.<br />

2.2. Wie unterscheiden sich Webprojekte<br />

von<strong>ein</strong><strong>an</strong><strong>der</strong>?<br />

In <strong>der</strong> Geschäftspraxis werden Webprojekte nach bestimmten Kriterien <strong>ein</strong>geordnet. Zum<br />

<strong>ein</strong>en wird unterschieden, ob es im eigenen Haus benötigt (Internes Projekt) o<strong>der</strong> <strong>an</strong><br />

<strong>ein</strong>en externen Auftraggeber abgegeben wird. Bei <strong>ein</strong>em groÿen Projekt werden zum <strong>an</strong><strong>der</strong>en<br />

mehrere Teilprojektleiter beschäftigt, die sich meistens <strong>ein</strong>em Vollzeit-Projektleiter<br />

unterordnen, während bei <strong>ein</strong>em kl<strong>ein</strong>en Projekt <strong>ein</strong> <strong>ein</strong>zelner Leiter voll ausreicht. Desweiteren<br />

k<strong>an</strong>n <strong>der</strong> Leistungsumf<strong>an</strong>g unterschiedlich ausgeprägt s<strong>ein</strong> und sich irgendwo<br />

zwischen <strong>ein</strong>er Wartung und <strong>ein</strong>er groÿ <strong>an</strong>gelegten Neugestaltung benden.<br />

Auch die Art <strong>der</strong> Website trägt zur Klassizierung <strong>ein</strong>es Webprojektes bei, vom Inhalt<br />

über (interner o<strong>der</strong> externer) Erreichbarkeit, Anzahl <strong>der</strong> verwendeten Sprachen und Techniken<br />

bis zu ihren Sicherheits<strong>an</strong>for<strong>der</strong>ungen.<br />

19


KAPITEL 2. WAS IST EIN WEB-PROJEKT<br />

2.3. Wer bestimmt in <strong>ein</strong>em Webprojekt?<br />

Hier gibt es zwei Parteien: den Auftraggeber bzw. den Kunden, und den Auftragnehmer als<br />

Dienstleister, <strong>der</strong> das Webprojekt erstellt. Beide Parteien sind unterteilt in Projektleiter<br />

und Team, wobei die Kundenpartei nicht zwingend <strong>ein</strong> Team besitzen muss und zusätzlich<br />

<strong>ein</strong>em Entschei<strong>der</strong> untergeordnet ist, <strong>der</strong> u.a. über das Budget verfügt und beispielsweise<br />

den Job des Abteilungsleiters ausübt. H<strong>an</strong>delt es sich um <strong>ein</strong> internes Webprojekt, können<br />

verschiedene gleichr<strong>an</strong>gige Rollen zusammenfallen.<br />

jedoch ist die Realisierung <strong>ein</strong>es Webprojekts auÿer von diesen beiden Parteien noch von<br />

<strong>an</strong><strong>der</strong>en abhängig, wie z.B. <strong>der</strong> Einkaufsabteilung, die das Projekt <strong>ein</strong>er Prüfung unterzieht,<br />

und den Stakehol<strong>der</strong>n, die vom Projekt irgendwie berührt werden, auf <strong>der</strong> Kundenseite,<br />

sowie auf Dienstleisterseite <strong>ein</strong>em Accountm<strong>an</strong>ager, <strong>an</strong> den sich <strong>der</strong> Kunde wendet,<br />

falls <strong>ein</strong> Problem nicht über den Projektleiter beseitigt werden k<strong>an</strong>n, in Zusammenwirkung<br />

mit <strong>ein</strong>em weiteren Entschei<strong>der</strong>.<br />

Abbildung 2.1.: Projektorg<strong>an</strong>isation und Umfeld<br />

Wenn das Projekt <strong>ein</strong>e bestimmte Gröÿe überschreitet, werden zentrale, das Projekt betreende<br />

Entscheidungen von <strong>ein</strong>em Steuerungsausschuss getroen, <strong>der</strong> aus dem Entschei<strong>der</strong><br />

<strong>der</strong> Kundenpartei, dem Accountm<strong>an</strong>ager <strong>der</strong> Dienstleisterpartei, den Projektleitern<br />

und den Vertretern <strong>ein</strong>iger Stakehol<strong>der</strong> besteht. Eine groÿe Kundenrma k<strong>an</strong>n aus ähnlichen<br />

Interessen <strong>ein</strong>en Lenkungsausschuss erstellen. Ob diese beiden Gremien leichter fähig<br />

sind Entscheidungen zu treen, wird in diesem Rahmen jedoch nicht weiter beh<strong>an</strong>delt.<br />

2.4. Was ist zu tun?<br />

Genauso wie Projekte im Allgem<strong>ein</strong>en lassen sich auch Webprojekte in drei Phasen <strong>ein</strong>teilen:<br />

In <strong>der</strong> Vorbereitungsphase wird <strong>ein</strong>e Idee zu <strong>ein</strong>em Projekt konkretisiert, in <strong>der</strong><br />

Durchführungsphase wird das Projekt durchgeführt und schlieÿlich in <strong>der</strong> Nutzungsphase<br />

<strong>an</strong>gewendet.<br />

Die Phase <strong>der</strong> Durchführung k<strong>an</strong>n im Fall <strong>ein</strong>es Webprojekts wie<strong>der</strong>um unterteilt werden<br />

in <strong>ein</strong>e Vorbereitungszeit <strong>der</strong> Zusammenarbeit (Kick-O), die Ist-Beschreibung, das<br />

Gesamtgrobkonzept, die Design- und die IT-Phase.<br />

20


2.4. WAS IST ZU TUN?<br />

Abbildung 2.2.: Phase <strong>der</strong> Durchführung<br />

Im Folgenden werden die wichtigsten Projektschritte <strong>ein</strong>es Webprojekts ausführlich dargestellt.<br />

1. Vorbereitung<br />

a) Projektidee<br />

• Hauptrollen: Entschei<strong>der</strong> und Antragsteller<br />

• Aufgaben: Erstmaliger Entwurf <strong>ein</strong>er Idee; Ziele, Nutzen, Notwendigkeit<br />

• Ergebnis: Skizze <strong>der</strong> Idee, Notwendigkeit <strong>der</strong> Weiterverfolgung <strong>der</strong> Idee<br />

b) Beauftragung des Kundenprojektleiters<br />

• Hauptrollen: Projektleiter und Entschei<strong>der</strong> <strong>der</strong> Kundenpartei<br />

• Aufgaben: Ernennung des Projektleiters<br />

• Ergebnis: Projektleiter wurde auserwählt, ist willig und sich s<strong>ein</strong>er Aufgabe<br />

bewusst<br />

c) Interne Projektdenition<br />

• Hauptrollen: Projektleiter und Entschei<strong>der</strong><br />

• Aufgaben: Festlegung des zu erreichenden Zieles: grobe Projektdenition<br />

seitens <strong>der</strong> Kunden und häuge Präsenz des Entschei<strong>der</strong>s, d<strong>an</strong>n Entscheidung<br />

über Weiterverfolgung des Projekts<br />

• Ergebnis: Priorisierte Liste von Anfor<strong>der</strong>ungen, Ziel, Zeitrahmen, Kooperation<br />

<strong>der</strong> Stakehol<strong>der</strong>, grobe Kosten-Nutzen-Analyse<br />

d) Beauftragung des Dienstleisters<br />

• Hauptrollen: Entschei<strong>der</strong> und Projektleiter auf Kundenseite, Akquiseteam<br />

auf Dienstleisterseite<br />

• Aufgaben: Prüfung <strong>der</strong> und Entscheidung über die Ressourcen, Präsentation<br />

<strong>der</strong> Dienstleister und ihrer Angebote sowie Vertragsunterzeichnung<br />

bei externer Projektvergabe<br />

• Ergebnis: Ausschreibung, kundenseitige Entscheidung über Weiterverfolgung<br />

des Projekts, Vertrag o<strong>der</strong> Vorvertrag, Geheimhaltungsver<strong>ein</strong>barung<br />

e) Beauftragung des Projektleiters auf Dienstleisterseite (parallel zu Schritt 1. d))<br />

21


KAPITEL 2. WAS IST EIN WEB-PROJEKT<br />

2. Durchführung<br />

• Hauptrollen: Projektleiter <strong>der</strong> Dienstleisterpartei, s<strong>ein</strong> Vorgesetzter, Accountm<strong>an</strong>ager<br />

• Aufgaben: Beauftragung des Projektleiters<br />

• Ergebnis: Projektleiter wurde auserwählt, ist willig und sich s<strong>ein</strong>er Aufgabe<br />

bewusst<br />

a) Kick-O: Vorbereitung <strong>der</strong> Zusammenarbeit, erstes Treen bei<strong>der</strong> Parteien<br />

• Hauptrollen: Projektleiter bei<strong>der</strong> Parteien, Entschei<strong>der</strong> und weitere<br />

• Aufgaben: Gegenseitige Vorstellung, Formalitäten vor <strong>der</strong> eigentlichen Arbeit<br />

• Ergebnis: Übergabe vorh<strong>an</strong>dener Dokumente, Kontakt zu relev<strong>an</strong>ten Personen,<br />

Org<strong>an</strong>isatorisches (Adresslisten, Urlaubspl<strong>an</strong>ung, Termine für Meetings,<br />

gem<strong>ein</strong>same Dokumentenhaltung)<br />

b) Ist-Beschreibung und Pichtenheft: Was ist da und was wird benötigt?<br />

• Hauptrollen: Projektleiter und erfahrene Mitarbeiter bei<strong>der</strong> Parteien<br />

• Aufgaben: Sammlung von Informationen über gegenwärtigen Zust<strong>an</strong>d und<br />

Anfor<strong>der</strong>ungen des Kunden <strong>an</strong> den Dienstleister<br />

• Ergebnis: Ist-Beschreibung (Design-Ist, IT-Ist,...), Pichtenheft (Beschreibung<br />

<strong>der</strong> Zielgruppe und ihre Bedürfnisse, Priorisierte Anfor<strong>der</strong>ungen:<br />

Kundenvorgaben/- wünsche, Domainkonzept/-sicherung, Liste <strong>der</strong> im Grobkonzept<br />

zu treenden Entscheidungen), geschäftlicher Sinn des Projekts<br />

(Ziel, Geschäftsmodell)<br />

c) Gesamtgrobkonzept: Treen <strong>der</strong> grundlegenden Entscheidungen<br />

• Hauptrollen: Projektleiter und erfahrene Mitarbeiter bei<strong>der</strong> Parteien<br />

• Aufgaben:<br />

Positionierung für die Zielgruppe (Nutzen, Markenwerte)<br />

Grobe Use Cases (Was können User in dieser Site tun? Welche Aktionen<br />

sind in <strong>der</strong> Contentpege möglich?)<br />

Grobe Übersicht des Content<br />

Gegebenenfalls Personalisierungskonzept<br />

Gegebenenfalls grobes Internationalisierungskonzept<br />

Grobes Marketingkonzept (Wie werden Nutzer gewonnen?)<br />

IT-Ziele (Perform<strong>an</strong>ce, Sicherheit)<br />

IT-Lösungsidee und Machbarkeit (Daten, Technologie, Org<strong>an</strong>isatorisches,<br />

Integration)<br />

Grobe IT-Architektur (Softwareprodukte, Hardware, St<strong>an</strong>dort)<br />

Prototypen<br />

d) Design<br />

22


2.4. WAS IST ZU TUN?<br />

e) IT<br />

• Hauptrollen: Mitarbeiter<br />

• Aufgaben:<br />

Informationsarchitektur<br />

∗ Use Cases (detaillierte H<strong>an</strong>dlungsabläufe des Nutzers)<br />

∗ Beschreibung des Content (Inhalte und Funktionalitäten)<br />

∗ Contentogramme (Inhaltmodule und ihre gegenseitige Vernetzung)<br />

∗ Navigationskonzept<br />

Audio-visuelles Konzept (Detailkonzeption <strong>der</strong> gestalterischen Maÿnahmen,<br />

die unmittelbar zur Implementierung des Designs führen)<br />

Styleguide<br />

Medienproduktion<br />

Usability-Tests (während des gesamten Designprozesses)<br />

• Hauptrollen: Mitarbeiter<br />

• Aufgaben:<br />

Etablierung <strong>der</strong> IT-Struktur für Softwareentwicklung, Integration, Roll-<br />

Out und Betrieb (Softwareprodukte, Hardware, Netzwerke, Kongurationsm<strong>an</strong>agement,<br />

Provi<strong>der</strong>)<br />

IT-F<strong>ein</strong>konzept (detailliertes Konzept für die Umsetzung des Grobkonzepts<br />

und des Designs, führt unmittelbar zur Implementierung)<br />

Softwareentwicklung<br />

IT-Tests<br />

Usability-Tests (Fortführung <strong>der</strong> Tests aus Punkt 2.d) Design)<br />

Dokumentation (für Wartung und spätere Än<strong>der</strong>ungen)<br />

f) Launch und verschiedene Vorbereitungsschritte<br />

• Hauptrollen: Mitarbeiter<br />

• Aufgaben:<br />

Schulung des Personals für den Betrieb<br />

Abnahmetest<br />

Eventuell Betrieb im <strong>ein</strong>geschränkten Rahmen (mit Feedback)<br />

Launch (Website online schalten, d.h. Start <strong>der</strong> Nutzung)<br />

g) Marketing: für die entstehende Seite werben<br />

3. Nutzung<br />

• Hauptrollen: Mitarbeiter<br />

• Aufgaben: Marketingkonzept (online und oine), Marketing-Roll-Out (Werbung)<br />

a) Betrieb und Pege<br />

23


KAPITEL 2. WAS IST EIN WEB-PROJEKT<br />

• Hauptrollen: Nutzer<br />

• Aufgaben: Pege des Content, Wartung, technische Administration<br />

[Sto04]<br />

Dieses Beispiel <strong>ein</strong>es Projektablaufs geht von <strong>ein</strong>em gröÿeren Webprojekt aus. In <strong>der</strong><br />

Realität sind diese Projekte selten so umf<strong>an</strong>greich, dass alle oben gen<strong>an</strong>nten Punkte ausführlich<br />

beh<strong>an</strong>delt werden müssen. Trotzdem ist es sinnvoller <strong>ein</strong>e <strong>der</strong>artige komplette<br />

Übersicht zu haben, damit die zuständigen Führungskräfte die <strong>ein</strong>zelnen Punkte abwägen<br />

können. Wie bereits erwähnt, h<strong>an</strong>delt es sich hier lediglich um <strong>ein</strong> Beispiel, welches<br />

als erste Orientierung <strong>an</strong>gesehen und durchaus noch individuell modiziert werden k<strong>an</strong>n.<br />

Auÿerdem lässt es sich sowohl bei wie<strong>der</strong>holen<strong>der</strong> (iterativer), als auch bei Wasserfall-<br />

(sequeltieller) Vorgehensweise <strong>an</strong>wenden. Da in <strong>der</strong> Ausarbeitung Pl<strong>an</strong>ung von Webprojekten<br />

näher auf die Projektpl<strong>an</strong>ung <strong>ein</strong>geg<strong>an</strong>gen wird, werde ich diesen Aspekt <strong>an</strong><br />

dieser Stelle vernachlässigen.<br />

2.5. Wer ist <strong>an</strong> <strong>ein</strong>em Webprojekt beteiligt?<br />

Abbildung 2.3.: Beispiel für Mitarbeiter<strong>ein</strong>satz im Projektverlauf<br />

Dieses Diagramm zeigt, wie verschiedene Mitarbeiter im Verlauf des Projekts <strong>ein</strong>gesetzt<br />

werden können. In <strong>der</strong> Realität können die Abweichungen von diesem Beispiel projektabhängig<br />

unterschiedlich stark ausgeprägt s<strong>ein</strong>. Auÿerdem ist <strong>der</strong> Einsatz von Beratern<br />

in vielen Bereichen oft sinnvoll. Neben Prozess- und Strategieberatern, die auch M<strong>an</strong>agementberater<br />

gen<strong>an</strong>nt werden, kommen gegebenenfalls auch Senior-Mitarbeiter mit gröÿerer<br />

Erfahrung zum Einsatz. Für br<strong>an</strong>chenspezisches fachliches Wissen sorgen sogen<strong>an</strong>nte<br />

fachliche Mitarbeiter auf Kundenseite, die nicht nur während <strong>der</strong> Pl<strong>an</strong>ungsphase, son<strong>der</strong>n<br />

auch später zur Kontrolle und Prüfung benötigt werden. Um sicherzustellen, dass die erstellte<br />

Website zur Marke passt, bek<strong>an</strong>nt wird und vielleicht auch selbst Werbung trägt,<br />

24


2.6. WAS MACHT DEN ERFOLG AUS?<br />

werden Marketing- und Br<strong>an</strong>ding-Experten <strong>ein</strong>gesetzt. Das Projektteam selbst, welches<br />

den Groÿteil <strong>der</strong> Projektarbeit leistet, besteht aus IT-Experten und Designern. Für die<br />

Contentpege nach Fertigstellung des Projekts sorgen Redakteure. Auch Juristen kommen<br />

zum Einsatz, wenn die Zusammenarbeitsverträge zwischen den zwei Parteien erstellt<br />

werden o<strong>der</strong> Streitigkeiten beseitigt werden sollen.<br />

2.6. Was macht den Erfolg aus?<br />

Nach <strong>ein</strong>er Untersuchung <strong>der</strong> Timekontor AG im Berliner und Br<strong>an</strong>denburger Raum wird<br />

von drei Internetprojekten im Durchschnitt <strong>ein</strong>s abgebrochen, wobei 75% <strong>der</strong> abgebrochenen<br />

Projekte nicht <strong>ein</strong>mal <strong>an</strong>satzweise die gesetzten Ziele erreicht. Von jeweils 12<br />

Intr<strong>an</strong>etprojekten scheitert <strong>ein</strong>s. Im Jahr 2002 [2000] wurden 15% [23%] aller IT-Projekte<br />

mit zu implementieren<strong>der</strong> Anwendung abgebrochen, während 51% [49%] n<strong>an</strong>zielle o<strong>der</strong><br />

zeitliche Rahmen verfehlten, o<strong>der</strong> die gestellte Anfor<strong>der</strong>ungsdenition nicht komplett erfüllten.<br />

Die Bedingungen für den Abbruch <strong>ein</strong>es Projekts sind nicht fest deniert, so dass<br />

Projekte auch erfolgreich s<strong>ein</strong> können, wenn sie <strong>ein</strong> Vielfaches <strong>an</strong> Kosten verschlingen,<br />

was am Beispiel <strong>der</strong> Entwicklung <strong>der</strong> deutschen LKW-Maut zu erkennen war.<br />

Wenn m<strong>an</strong> sich wagt <strong>ein</strong> normales Webprojekt zu implementieren, muss m<strong>an</strong> sich bewusst<br />

s<strong>ein</strong>, dass die Wahrsch<strong>ein</strong>lichkeit des totalen Versagens nicht gerade kl<strong>ein</strong> ist. Eine<br />

Verkl<strong>ein</strong>erung <strong>der</strong> IT-Projekte, reifere Technologien und Methoden, sowie <strong>ein</strong> gestiegenes<br />

Risikobewussts<strong>ein</strong> bewirkten, dass sich im Jahr 2000 etwa 28% von ihnen im zeitlichen,<br />

n<strong>an</strong>ziellen und funktionellen Rahmen bef<strong>an</strong>den, während es 1993 noch lediglich halb so<br />

viele waren.<br />

Eine weitere Grak illustriert die wichtigsten Probleme während <strong>der</strong> Entwicklung <strong>ein</strong>es<br />

Webprojekts, wobei berücksichtigt werden muss, dass die meisten Probleme in <strong>der</strong> Anf<strong>an</strong>gsphase<br />

verursacht werden und erst später sichtbar werden.<br />

25


KAPITEL 2. WAS IST EIN WEB-PROJEKT<br />

Abbildung 2.4.: Projektprobleme<br />

Die Tatsache, dass <strong>ein</strong> Projekt erfolgreich wird, hängt von vielen Faktoren ab, nicht zuletzt<br />

vom Entschei<strong>der</strong> <strong>der</strong> Kundenpartei und den Projektleitern bei<strong>der</strong> Parteien. je mehr<br />

Abteilungen über das Projekt bestimmen dürfen und je stärker sich daher die Anfor<strong>der</strong>ung<br />

und die Umwelt än<strong>der</strong>n, desto wahrsch<strong>ein</strong>licher ist es, dass das Projekt scheitert.<br />

Zur Steigerung <strong>der</strong> Erfolgswahrsch<strong>ein</strong>lichkeit sollte unter <strong>an</strong><strong>der</strong>en beson<strong>der</strong>s <strong>der</strong> Entschei<strong>der</strong><br />

das Projekt voll unterstützen. Ein Webprojekt muss auÿerdem <strong>ein</strong>e inhaltliche Basis<br />

enthalten und bezüglich s<strong>ein</strong>er Kosten und Nutzen bewerten worden s<strong>ein</strong>. Im Team sollten<br />

kommunikative Barrieren vermieden werden. Und die zuständigen Projektleiter und<br />

Entschei<strong>der</strong> sollten sich in ihren Parteien gut auskennen und ihre Aufgaben erfüllen. Ein<br />

Fehlen <strong>ein</strong>es o<strong>der</strong> mehrerer dieser ausgewählten Aspekte k<strong>an</strong>n sich ebenfalls negativ auf<br />

das Projekt auswirken.<br />

26


2.7. Was macht die Kosten aus?<br />

2.7. WAS MACHT DIE KOSTEN AUS?<br />

Abbildung 2.5.: Kosten im Zusammenh<strong>an</strong>g mit <strong>ein</strong>em Webprojekt<br />

Da <strong>ein</strong>e fertiggestellte Webseite natürlich inhaltlich und technisch gepegt werden muss,<br />

k<strong>an</strong>n, abhängig von <strong>der</strong> Ausprägung <strong>der</strong> Pege, <strong>ein</strong> Groÿteil <strong>der</strong> Kosten auf die laufenden<br />

Kosten entfallen. Die <strong>ein</strong>maligen Kosten lassen sich in fünf Bereiche unterteilen, die<br />

überwiegend gleichbedeutend sind (Tabelle).<br />

Bisher haben wir gelernt, dass Webprojekte häug scheitern und aus diesem Grund von<br />

vornher<strong>ein</strong> <strong>ein</strong> Risiko sind. Daher ieÿen nicht nur die Aufgaben <strong>der</strong> Kundenpartei in die<br />

Kosten <strong>ein</strong>es Webprojekts <strong>ein</strong>, son<strong>der</strong>n auch das Risiko, welches auch von den beteiligten<br />

Personen, Firmen und dem g<strong>an</strong>zen Umfeld be<strong>ein</strong>usst wird. Zuletzt gen<strong>an</strong>nte Faktoren<br />

können bei <strong>der</strong>selben Aufgabenstellung je<strong>der</strong> Kundenrma <strong>ein</strong>en <strong>an</strong><strong>der</strong>en Preis bescheren.<br />

Für die Dienstleistungspartei zahlen sich Erfolge dafür umso mehr aus.<br />

Zuletzt noch <strong>ein</strong>e Übersicht <strong>der</strong> n<strong>an</strong>ziell beson<strong>der</strong>s schwerwiegenden Aspekte in Webprojekten:<br />

• Internationalisierung<br />

• Sehr neuartige Vorhaben, es gibt bisher nichts Ähnliches im Internet<br />

• Beson<strong>der</strong>e Anfor<strong>der</strong>ungen <strong>an</strong> die Inszenierung von Marken (Top-Markenunternehmen)<br />

• Personalisierung<br />

• Community-Features<br />

• Spiele<br />

• Shop<br />

• CMS<br />

• Komplexer Workow für die Contentverwaltung<br />

• Funktionen, insbeson<strong>der</strong>e solche, die technisch nicht all<strong>ein</strong> innerhalb <strong>der</strong> Website<br />

operieren; Tr<strong>an</strong>saktionen mit Waren o<strong>der</strong> Geld<br />

27


KAPITEL 2. WAS IST EIN WEB-PROJEKT<br />

• Hochleistung<br />

• Hohe Sicherheits<strong>an</strong>for<strong>der</strong>ungen<br />

• Anzahl <strong>der</strong> Seiten <strong>der</strong> Website<br />

• Unerprobte Technologie<br />

• Org<strong>an</strong>isatorischer Faktor (viele Stakehol<strong>der</strong>, Groÿunternehmen, viele Vorschriften,<br />

l<strong>an</strong>gsame Entscheidungsprozesse)<br />

• Persönlicher Faktor (schwierige Beziehungen, unerfahrene Führungskräfte)<br />

• M<strong>an</strong>gelnde Erfahrung mit ähnlichen Projekten in <strong>der</strong> Org<strong>an</strong>isation, fehlende Ressourcen<br />

mit Erfahrung<br />

• Än<strong>der</strong>ungs<strong>fr</strong>eudiges Projektumfeld (Geschäftslage, Marktlage, Kundenbedürfnisse,<br />

Umstrukturierungen etc.)<br />

• Unklare Ziele und Än<strong>der</strong>ungen <strong>der</strong> Ziele<br />

2.8. Fazit<br />

Die auf den in <strong>der</strong> Projektgruppe gehaltenen Vortrag zu dieser Ausarbeitung folgende<br />

Diskussion stärkte die Klarheit, dass sich <strong>ein</strong> Webprojekt nicht allzu stark von <strong>ein</strong>em<br />

normalen Projekt unterscheidet.<br />

Unserer Gruppe wurde auÿerdem am eigenen Beispiel klar, dass die in dieser Ausarbeitung<br />

als vorbildlich gesammelten Regelungen nicht un<strong>ein</strong>geschränkt gültig sind. Obwohl <strong>ein</strong><br />

Webprojekt möglichst nicht länger als <strong>ein</strong> halbes Jahr dauern sollte, wird unseres <strong>ein</strong><br />

g<strong>an</strong>zes Jahr dauern. Unser Webprojekt ist jedoch Teil <strong>der</strong> Ausbildung von Studenten, so<br />

dass unter <strong>an</strong><strong>der</strong>em die Erlernung und Vertiefung <strong>an</strong>gewendeter Verfahren <strong>ein</strong> weiterer<br />

Aspekt <strong>der</strong> Ver<strong>an</strong>staltung ist, welcher das Projekt in die Länge zieht.<br />

28


3. Pl<strong>an</strong>ung von Web-Projekten<br />

3.1. Einleitung<br />

3.1.1. Allgem<strong>ein</strong>e Einleitung<br />

In immer mehr Bereichen wird die Massenproduktion von Waren durch Herstellung von<br />

kundenspezischen innovativen Produkten ersetzt. Möglichst schnell, jedoch doch individuell.<br />

Forschung und Entwicklung wird dabei immer wichtiger. Es entstehen viele Einzelvorhaben,<br />

die <strong>ein</strong> vernünftiges Projektm<strong>an</strong>agement Notwendig machen. Die Anfänge des<br />

Projektm<strong>an</strong>agements werden auf das Apollo Projekt <strong>der</strong> NASA zu Beginn <strong>der</strong> 60er Jahre<br />

zurück. M<strong>an</strong> musste <strong>ein</strong>e enge Verechtung von Forschern, Ingenieuren und Institutionen<br />

unter hohem Zeitdruck (<strong>der</strong> Wettlauf mit den Sowjets) koordinieren. Dieses Dokument<br />

befasst sich aber nicht mit <strong>der</strong> Historie <strong>der</strong> Projektpl<strong>an</strong>ung o<strong>der</strong> die Gestaltung solcher<br />

Groÿprojekte. Son<strong>der</strong>n mit <strong>der</strong> Pl<strong>an</strong>ung von Webprojekten. Webprojekte sind in sich geschlossen<br />

und nutzen die weltweite Plattform Internet als Verbreitungsmöglichkeit. Für<br />

<strong>ein</strong> Webprojekt ist <strong>ein</strong> klares Konzept neben den technischen Voraussetzungen für <strong>ein</strong>en<br />

guten Web Auftritt maÿgeblich.<br />

3.1.2. Strukturelle Einleitung<br />

Dieses Dokument benutzt hauptsichtlich als Informationsquelle den 3 Kapitel des Buchs<br />

M<strong>an</strong>agement von Webprojekten - Führung, Projektpl<strong>an</strong>, Vertrag [Sto04] . Daher ist<br />

die Struktur des Dokuments diesem Kapitel sehr ähnlich. Jedoch wurde zur Ergänzung<br />

dieser Quelle weitere Quellen aus dem Internet hinzugenommen [BO] [vir] [Sel] [TO].<br />

Daher stehen hier auch <strong>ein</strong> paar Informationen, die im erwähnten Buch nicht stehen.<br />

Gröÿtenteils werden die Informationen in diesem Dokument stichwortartig aufgezählt.<br />

Das hat den Sinn, viel Wissen auf wenige Seiten zu bündeln ohne dabei die Übersicht zu<br />

verlieren.<br />

3.2. Wie genau sind die Kosten pl<strong>an</strong>bar<br />

Kostenschätzung und Terminpl<strong>an</strong>ung sind erst auf Grund erarbeiteter Informationen möglich.<br />

Daher, um Kosten vernünftig zu pl<strong>an</strong>en, braucht m<strong>an</strong> zunächst die dazu benötigten<br />

Informationen. Diese Informationen ergeben sich hauptsichtlich aus <strong>der</strong> Ist-Situation (Ist-<br />

Beschreibung), die Anfor<strong>der</strong>ungen (Pichtenheft) und dessen Umsetzung (Grobkonzept).<br />

Weiter k<strong>an</strong>n m<strong>an</strong> das Grobkonzept in <strong>ein</strong>en F<strong>ein</strong>konzept führen.<br />

29


KAPITEL 3. PLANUNG VON WEB-PROJEKTEN<br />

Durch das Pichtenheft und <strong>der</strong> Ist-Beschreibung k<strong>an</strong>n m<strong>an</strong> ungefähr die Gröÿenordnung<br />

<strong>der</strong> Projektkosten ermitteln, d.h. wie viele Stellen <strong>der</strong> Betrag hat. In dem Pichtenheft ist<br />

<strong>ein</strong>e detaillierte Liste <strong>der</strong> Anfor<strong>der</strong>ungen <strong>an</strong>s Projekt <strong>an</strong>gegeben. Dar<strong>an</strong> erkennt m<strong>an</strong> die<br />

Hauptkostenfaktoren. Das Grobkonzept ermöglicht die Ermittlung <strong>der</strong> Kosten um <strong>ein</strong>e<br />

30 Prozent Genauigkeit. Beim Grobkonzept müssen die wichtigsten Entscheidungen zur<br />

Umsetzung des Projekts bereits gefallen s<strong>ein</strong>. Das F<strong>ein</strong>konzept wird in <strong>der</strong> Regel nach dem<br />

Design erzeugt, daher ist <strong>an</strong> dieser Stelle <strong>ein</strong>e sehr genaue Kostenabschätzung möglich.<br />

Im Allgem<strong>ein</strong>en gilt für die <strong>ein</strong>zelnen Projektschritte, dass dessen Aufw<strong>an</strong>d am Ende des<br />

vorherigen Schritts sehr genau <strong>ein</strong>schätzbar ist. Das gilt aber nicht für die Kosten, son<strong>der</strong>n<br />

auch für den Projektpl<strong>an</strong> und Fertigstellungstermin.<br />

3.3. Schätzen<br />

Das Schätzen ist sehr elementar um <strong>fr</strong>ühzeitig die Kosten o<strong>der</strong> den Zeitaufw<strong>an</strong>d <strong>ein</strong>zusehen.<br />

Nur so erkennt m<strong>an</strong>, ob <strong>ein</strong> Projekt überhaupt Sinn macht. Gute Schätzungen hängen<br />

von mehreren Personen und dessen Zusammenarbeit in <strong>ein</strong>er Gruppe ab. Die Qualität dieser<br />

Schätzungen ist <strong>ein</strong> Produktivfaktor mit dem Geld gespart o<strong>der</strong> verdient wird. Der<br />

Auftraggeber des Projekts benötigt diese Schätzungen um das Kosten-Nutzen-Verhältnis<br />

<strong>ein</strong>er Investition zu bestimmen. Der Auftragnehmer k<strong>an</strong>n erst durch die Schätzungen <strong>ein</strong><br />

wettbewerbsfähiges Angebot erstellen, bei dem m<strong>an</strong> vernünftig auf die Anfor<strong>der</strong>ungen<br />

und dessen Machbarkeit geachtet hat und bei dem <strong>der</strong> eigene Gewinn natürlich nicht zu<br />

kurz kommt.<br />

3.3.1. Das Ergebnis <strong>ein</strong>er Schätzung<br />

Das Ergebnis <strong>ein</strong>er Schätzung hängt natürlich von den Fragen ab, die m<strong>an</strong> be<strong>an</strong>twortet<br />

haben will. Die Fragen beim Schätzen lauten im Allgem<strong>ein</strong>en bei <strong>der</strong> Projektpl<strong>an</strong>ung,<br />

• mit welchen eigenen Aufw<strong>an</strong>d,<br />

• welchem Beitrag <strong>ein</strong>es Dritten<br />

• und bis w<strong>an</strong>n ist das Ziel erreicht?<br />

Diese Punkte sind nicht nur zu benennen, son<strong>der</strong>n müssen auch auf<strong>ein</strong><strong>an</strong><strong>der</strong> abgestimmt<br />

werden.<br />

Das Ergebnis <strong>der</strong> Schätzung ist ebenfalls <strong>ein</strong>e Unterglie<strong>der</strong>ung <strong>der</strong> Leistungen. Dabei ist<br />

es auch gut Ausschlüsse zu benennen. Das sind Punkte die fälschlicherweise als Anfor<strong>der</strong>ungen<br />

deniert werden könnten, jedoch schon erfüllt sind o<strong>der</strong> durch <strong>ein</strong>en Dritten bearbeitet<br />

werden. Weiterhin sollten oene Fragen o<strong>der</strong> mögliche Risiken bestimmt werden.<br />

Diese sind noch nicht mit <strong>ein</strong>er ver<strong>an</strong>twortungsvollen Abschätzung klärbar. Zunächst wird<br />

nur <strong>ein</strong> vernünftiger Aufw<strong>an</strong>dsaufschlag bestimmt. Sie werden später im Risikom<strong>an</strong>agement<br />

weiter beh<strong>an</strong>delt. Am Ende werden noch die Erfor<strong>der</strong>lichen Sachkosten ermittelt.<br />

Diese Sachkosten entstehen durch Schulungen für Mitarbeiter, beson<strong>der</strong>e Entwicklung-<br />

30


3.3. SCHÄTZEN<br />

o<strong>der</strong> Testsoftware o<strong>der</strong> -hardware und eventuell auch durch Reisekosten. Jedoch werden<br />

die Sachkosten nur erwähnt, wenn sie nur für dieses Projekt gelten. Auÿerdem werden<br />

im Allgem<strong>ein</strong>en die Schulungen und das Arbeitsmaterial aus dem eigenen Firmenbudget<br />

bezahlt.<br />

Die Hauptaufgabe ist die Schätzung <strong>der</strong> Kosten (Bsp. die Löhne) <strong>der</strong> teilnehmenden Personen.<br />

Diese Abschätzung ist abhängig von den Tagessätzen, die <strong>ein</strong>er Mitarbeitergruppe<br />

erhält und die Dauer in <strong>der</strong> m<strong>an</strong> diese Gruppe be<strong>an</strong>sprucht. Nach <strong>der</strong> Multiplikation <strong>der</strong><br />

Tagessätze mit <strong>der</strong> Dauer und die Addition des G<strong>an</strong>zen erfolgt <strong>der</strong> Gesamtpreis.<br />

Risikom<strong>an</strong>agement<br />

Als Risiko gilt beim Projektm<strong>an</strong>agement grundsätzlich alle Unwägbarkeiten, die den Projekterfolg<br />

hinauszögern o<strong>der</strong> gefährden können. Ein Risiko k<strong>an</strong>n unerwartet <strong>ein</strong>treten.<br />

Doch oft ist er schon am Projekt<strong>an</strong>f<strong>an</strong>g vorhersehbar. Um solche Probleme zu umgehen<br />

wird am Start <strong>ein</strong>es Projektes <strong>ein</strong>e Risiko<strong>an</strong>alyse vollzogen. Nach dem Erkennen <strong>ein</strong>es<br />

Risikos erfolgt die Gestaltung von Vorkehrungen zum lösen o<strong>der</strong> Vermeiden des Problems.<br />

Alles wird d<strong>an</strong>n in <strong>ein</strong>er Tabelle <strong>ein</strong>getragen, um immer wie<strong>der</strong> darauf zugreifen<br />

zu können. Während des Projektverlaufs sollte m<strong>an</strong> die Risiko-Tabellen immer wie<strong>der</strong><br />

überprüfen. M<strong>an</strong>chmal lösen sich Risiken durch neue Informationen o<strong>der</strong> Entwicklungen<br />

in Luft auf; o<strong>der</strong> es entstehen neue Risiken.<br />

3.3.2. Erstellen <strong>ein</strong>er Schätzung<br />

Der Erste Schritt ist die naive Schätzung. In ihr wird stichpunktartig jede Anfor<strong>der</strong>ung des<br />

Projektes erklärt, welche Punkte m<strong>an</strong> dafür im Einzelnen schon erzielt haben muss o<strong>der</strong><br />

durch sie erzielt werden. Anschlieÿend werden noch diese Punkte mit <strong>ein</strong>em möglichen<br />

Aufw<strong>an</strong>d beschrieben, <strong>der</strong> auf die eigenen Erfahrungen basiert. Dadurch entsteht <strong>ein</strong>e<br />

Aufw<strong>an</strong>dsunterglie<strong>der</strong>ung.<br />

Diese Unterglie<strong>der</strong>ung wird im nächsten Schritt überprüft und verf<strong>ein</strong>ert. Dabei soll <strong>ein</strong><br />

qualitatives Niveau erreicht werden, das den folgenden Verwendungszwecken genügt.<br />

• Aufw<strong>an</strong>dskalkulation<br />

• Projektpl<strong>an</strong>ung<br />

• Projektcontrolling<br />

Um die gewünschte Qualtität zu erreichen sollte m<strong>an</strong> bei <strong>der</strong> Überprüfung und Verf<strong>ein</strong>erung<br />

bestimmte Punkte beachten.<br />

• Es sollten konkrete Teilergebnisse ben<strong>an</strong>nt werden (Bsp. Kunden-Newsletter alle 2<br />

Wochen)<br />

• Die Aufw<strong>an</strong>dspunkte sollten ungefähr <strong>ein</strong>e Gröÿe haben. Sonst sollten sie weiter<br />

unterglie<strong>der</strong>t werden.<br />

31


KAPITEL 3. PLANUNG VON WEB-PROJEKTEN<br />

• Risk<strong>an</strong>te Aufw<strong>an</strong>dspunkte sollten markiert werden und genauer untersucht werden.<br />

• Weiterhin sollte m<strong>an</strong> nie das Vergessen vergessen. Daher sollte m<strong>an</strong> bei den Schätzungen<br />

immer <strong>ein</strong>en kl<strong>ein</strong>en Puer berücksichtigen.<br />

• Projektleitungs- und Kommunikationsaufwände sind auch Aufwände.<br />

• Es zählen auch menschliche Schwierigkeitsfaktoren, wie Kr<strong>an</strong>kheit o<strong>der</strong> ähnliches<br />

• Immer die übergeordneten Ziele und die kritischen Erfolgsfaktoren im Auge behalten.<br />

• M<strong>an</strong> muss auch beachten, dass m<strong>an</strong> bei <strong>ein</strong>igen Punkten zu wenig Erfahrung hat<br />

um sie genau zu bewerten. D<strong>an</strong>n sollte m<strong>an</strong> es entwe<strong>der</strong> den <strong>an</strong><strong>der</strong>en die Bewertung<br />

überlassen o<strong>der</strong> wenigstens 10-20 Prozent auf <strong>der</strong> gefühlten Wertung dazu rechnen.<br />

• Dinge, die m<strong>an</strong> nicht <strong>ein</strong>schätzen k<strong>an</strong>n, sollten markiert und später weiter besprochen<br />

werden.<br />

• Die Dauer <strong>der</strong> Schätzung sollte in <strong>ein</strong>em vernünftigen Rahmen bleiben. Aber auch<br />

nicht zu schnell abgeschlossen werden.<br />

Aufglie<strong>der</strong>ung bestimmter Aufw<strong>an</strong>dspunkte<br />

Wie schon mal erwähnt, muss m<strong>an</strong> zu groÿ geratene Aufw<strong>an</strong>dspunkte (Dauer o<strong>der</strong> Aufw<strong>an</strong>d)<br />

weiter unterglie<strong>der</strong>n. Dabei richtet m<strong>an</strong> sich nach folgenden Punkten: Aufglie<strong>der</strong>ung<br />

...<br />

• nach inhaltliche, strukturelle Teile<br />

• gemäÿ Arbeitsablauf<br />

• nach Use Cases des Nutzers<br />

Anfor<strong>der</strong>ungen<br />

Da immer wie<strong>der</strong> über Anfor<strong>der</strong>ungen gesprochen wird. Hier noch <strong>ein</strong> paar Hinweise, die<br />

m<strong>an</strong> dazu beachten sollte. Es ist hil<strong>fr</strong>eich den Anfor<strong>der</strong>ungen Prioritäten zu zu ordnen. So<br />

k<strong>an</strong>n m<strong>an</strong> erkennen, welche unbedingt notwendig sind o<strong>der</strong> welche m<strong>an</strong> notfalls weglassen<br />

k<strong>an</strong>n. Dafür gibt es mehrere mögliche Methoden.<br />

Eine Möglichkeit ist es, die Anfor<strong>der</strong>ungen in MUSS, SOLL o<strong>der</strong> KANN aufzuteilen.<br />

• MUSS: Ohne diese Anfor<strong>der</strong>ungen ist das Vorhaben nicht sinnvoll<br />

• SOLL: Diese Anfor<strong>der</strong>ungen sollte m<strong>an</strong> wenn möglich umsetzen<br />

• KANN: Anfor<strong>der</strong>ungen, die <strong>ein</strong>e Art Bonus darstellen (nice to have)<br />

32


3.3. SCHÄTZEN<br />

Eine <strong>an</strong><strong>der</strong>e Methode ist das Paretoprinzip, wonach in vielen Zusammenhängen <strong>ein</strong> kl<strong>ein</strong>er<br />

Teil <strong>der</strong> Dinge den überragenden Anteil des Eektes ausmacht. Oft gibt es <strong>ein</strong> kl<strong>ein</strong>er<br />

Kern <strong>der</strong> Anfor<strong>der</strong>ungen, die den eigentlichen Gesamt-Eekt ausmachen. Diese Anfor<strong>der</strong>ungen<br />

werden bestimmt und zum Gesamtinhalt des Projektes ben<strong>an</strong>nt. Um weiter<br />

Ergänzungen vorzunehmen wird d<strong>an</strong>n <strong>ein</strong> neues Projekt gestartet.<br />

3.3.3. Erfahrungswerte zum Vergleichen<br />

Die fertige Schätzung k<strong>an</strong>n m<strong>an</strong> durch allgem<strong>ein</strong>e Erfahrungswerte vergleichen. Aus <strong>der</strong><br />

Sicht des Zeitbedarfs sind die groÿen Blöcke:<br />

• Konzeption<br />

• Implementierung<br />

• Test und Verbesserung<br />

• Projektleitung<br />

• Gewährleistungspichten gegenüber dem Kunden<br />

Für kl<strong>ein</strong>e o<strong>der</strong> mittlere Projekte gilt bei <strong>der</strong> Zeitverteilung; 1/3 Konzeption, 1/3 Implementierung,<br />

1/3 Test und Verbesserung. Bei groÿen Projekten verbraucht die Konzeption<br />

mehr Zeit als die restlichen Punkte zusammen.<br />

Proportional zum Gesamtaufw<strong>an</strong>d <strong>der</strong> Projektdurchführung gelten folgende Punkte:<br />

• Übersehene Aufwände (10-20 Prozent)<br />

• Projektleitung (20-25 Prozent)<br />

• Gewährleistung des Dienstleisters <strong>an</strong> den Kunden (15 Prozent für 12 Monate)<br />

3.3.4. Typische Schätzfehler<br />

Es gibt immer wie<strong>der</strong> Bedingungen die Schätzfehler provozieren.<br />

• Bevor die Schätzung durchgeführt wurde, bestehen schon Erwartungen <strong>an</strong> ihr.<br />

• Druck zur Kürzung <strong>der</strong> Schätzung durch Chef o<strong>der</strong> Kunden.<br />

• Bedingungen für <strong>ein</strong>e Zeitverkürzung werden nachträglich unterschlagen.<br />

• Aufwände werden vergessen.<br />

• Nicht genügend o<strong>der</strong> die falschen Schätzer werden ge<strong>fr</strong>agt.<br />

• Generell persönlich Tendenzen zu Fehl<strong>ein</strong>schätzungen.<br />

• Überschätzung durch zu detaillierte Aufglie<strong>der</strong>ung <strong>der</strong> Schätzung.<br />

33


KAPITEL 3. PLANUNG VON WEB-PROJEKTEN<br />

3.4. Allgem<strong>ein</strong>e Einführung zu Schätzmethoden<br />

3.4.1. Methoden<br />

Die Analogieschätzung beruht darauf <strong>ein</strong>e o<strong>der</strong> mehrere ähnliche verg<strong>an</strong>gene Projekte<br />

als Vergleichsbasis her<strong>an</strong>zuziehen um das aktuelle Projekt <strong>ein</strong>zuschätzen. Am Besten<br />

bezieht m<strong>an</strong> sich auf Projekte zum Vergleich <strong>an</strong> dem m<strong>an</strong> selbst beteiligt war; o<strong>der</strong> die<br />

ausführlich Dokumentiert wurden.<br />

Die Expertenschätzung entsteht, indem Experten den Schätzgegenst<strong>an</strong>d in <strong>ein</strong>zelne<br />

Punkte unterglie<strong>der</strong>n. Darauf wird d<strong>an</strong>n <strong>der</strong> Aufw<strong>an</strong>d <strong>der</strong> <strong>ein</strong>zelnen Punkte <strong>ein</strong>geschätzt.<br />

Dabei verlässt m<strong>an</strong> sich auf die Erfahrung <strong>der</strong> Experten. Es gibt unterschiedliche Arten<br />

des Ablaufs von Expertenschätzungen:<br />

• Die Einzelschätzung, wobei nur <strong>ein</strong>e Person die Schätzung vollzieht.<br />

• Das Zusammenrechnen mehrerer Einzelschätzungen (z.B. Durchschnitt).<br />

• Die Delphi-Methode (entwickelt von RAND-Corporation und O. Helmer). Hier werden<br />

auch Einzelschätzungen zusammengerechnet, jedoch wird auf Anonymität geachtet,<br />

um Be<strong>ein</strong>ussungen zu vermeiden.<br />

• Der genaue gegen Schritt zur Delphi-Methode ist die Schätzklausur. Hier wird oen<br />

in <strong>der</strong> Gruppe geschätzt. Hier ist <strong>der</strong> Vorteil gleich auch <strong>der</strong> Nachteil. Es wird<br />

nämlich <strong>der</strong> <strong>fr</strong>eie Informationsaustausch geför<strong>der</strong>t.<br />

Bei <strong>der</strong> Kennzahlmethode wir <strong>ein</strong>e Formel zur Einschätzung des Aufw<strong>an</strong>ds zu Rate<br />

gezogen.<br />

Es gibt <strong>ein</strong>ige solche Schätzverfahren, wie CoCoMo, Function Point o<strong>der</strong> Object Point.<br />

• Das CoCoMo Verfahren basiert auf die Betrachtung <strong>der</strong> Lines of Code und dessen<br />

prozentuale Aufw<strong>an</strong>dverteilung auf den verschiedenen Projektphasen.<br />

• Bei <strong>der</strong> Function-Point Methode werden zunächst Komponenten wie Input-, Outputwerte,<br />

Relationen usw. bestimmt. Darauf werden diesen Komponenten Funktionspunkte<br />

je Komplexität zugeordnet. Anschlieÿend werden noch die Einussfaktoren<br />

bewertet und d<strong>an</strong>n gerechnet.<br />

• Die Object-Point Methode ist die Anpassung <strong>der</strong> Function-Point Methode auf <strong>ein</strong>e<br />

objektorientierte Entwicklung. Dafür wird die Anzahl <strong>der</strong> Klassen, Botschaften und<br />

Geschäftsprozesse betrachtet.<br />

Jedoch sind die Kennzahlmethoden für <strong>ein</strong> Web-Projekt nicht wirklich relev<strong>an</strong>t, da sie<br />

nur den IT-Aspekt berücksichtigen. Sie sind auf Design, Br<strong>an</strong>ding o<strong>der</strong> Consulting nicht<br />

<strong>an</strong>wendbar.<br />

34


3.5. SCHÄTZUNG IM TEAM<br />

3.4.2. Strategien<br />

Es gibt unterschiedliche Formen, bei denen m<strong>an</strong> entwe<strong>der</strong> aus dem Preis die Leistung<br />

o<strong>der</strong> aus <strong>der</strong> Leistung <strong>der</strong> Preis abgeleitet wird.<br />

Beim Bottom-up werden aus den Teilen des Projekts die Kosten hergeleitet. Ein Beispiel<br />

ist Expertenschätzung.<br />

Der Top-down Ansatz geht vom umgekehrten aus. Der Gesamtaufw<strong>an</strong>d wird zunächst<br />

<strong>ein</strong>geschätzt und d<strong>an</strong>n auf die Teile des Projektes verteilt.<br />

Beim Target Costing ist <strong>der</strong> Preis schon fest und d<strong>an</strong>ach muss sich d<strong>an</strong>n das Projekt<br />

richten.<br />

3.4.3. Wahl <strong>der</strong> Schätzmethoden<br />

Vor <strong>der</strong> Projektdenition dient das Pichtenheft zur Vorbereitung des Projektes. Dieses<br />

wird am besten durch die Analogiemethode erzeugt. Nach <strong>der</strong> Projektdenition (Pichtenheft<br />

ist erstellt) werden die Experten zu Rate gezogen. Es folgt die Expertenschätzung,<br />

die m<strong>an</strong> wie<strong>der</strong>um durch die Analogiemethode absichern k<strong>an</strong>n.<br />

Bei kl<strong>ein</strong>en Projekten wird tendenziell schon <strong>fr</strong>üher die Expertenschätzung durchgeführt.<br />

Da hier schon oft durch <strong>ein</strong>e konkrete Projektzieldenition die Grundlage für die Experten<br />

vorh<strong>an</strong>den ist.<br />

3.5. Schätzung im Team<br />

3.5.1. Leitung <strong>der</strong> Schätzung im Team<br />

Es wird gerne im Team geschätzt. Durch <strong>ein</strong> ausgewogenes Team sind gleich mehrere<br />

Blickwinkel auf das Thema möglich. Es ist aber auch die <strong>ein</strong>zige Methode relativ schnell<br />

<strong>ein</strong>e Schätzung vorzunehmen. Innerhalb <strong>ein</strong>er Gruppe muss m<strong>an</strong> aber unbedingt drauf<br />

achten, dass alles im richtigen Rahmen verläuft. Sonst erl<strong>an</strong>gt m<strong>an</strong> nicht die gewünschte<br />

Eektivität. Daher wird immer <strong>ein</strong> Mo<strong>der</strong>ator <strong>der</strong> Gruppe bei Seite stehen müssen, <strong>der</strong><br />

die Gruppe för<strong>der</strong>t und vorbereitet.<br />

Hier sind <strong>ein</strong>ige Ablaufschritte aufgezählt, die m<strong>an</strong> befolgen sollte (dafür ist hauptsichtlich<br />

<strong>der</strong> Projektleiter zuständig):<br />

• Der Projektleiter bestimmt die Schätzmethoden und dessen Arbeitsprozess. Er sollte<br />

selbst schon vorher <strong>ein</strong>e leichte Abschätzung im Hinterkopf haben.<br />

• Es sollte <strong>ein</strong> vernünftiger Zeitrahmen vorh<strong>an</strong>den s<strong>ein</strong>. M<strong>an</strong> sollte immer dabei die<br />

Projektgröÿe, den Projekttyp und Konsequenzen <strong>ein</strong>er Fehl<strong>ein</strong>schätzung in Betracht<br />

ziehen. Bei <strong>ein</strong>em Projekt von 100 Personentagen (PT) sollte m<strong>an</strong> schon 3PT für<br />

die Schätzung opfern.<br />

• Alle grundlegende Fragen sollten geklärt und das benötigte Informationsmaterial<br />

für alle gribereit vorh<strong>an</strong>den s<strong>ein</strong>.<br />

35


KAPITEL 3. PLANUNG VON WEB-PROJEKTEN<br />

• Das Team sollte aus wenige sehr erfahrene Leute bestehen. Es müssen jedoch mindestens<br />

alle benötigten Disziplinen vertreten s<strong>ein</strong>. Anfänger müssen beteiligt werden,<br />

wenn sie dadurch geschult werden sollen o<strong>der</strong> sie bei <strong>der</strong> Ausführung <strong>ein</strong>en wichtigen<br />

Teil mit übernehmen.<br />

• Wenn die Projektaufgabe deutlich nach Disziplinen aufteilbar ist, sollten passend je<br />

Disziplin Schätzteams von mindestens 2 Personen gebildet werden.<br />

• Nachdem <strong>ein</strong>e Liste <strong>der</strong> aufw<strong>an</strong>dsrelev<strong>an</strong>ten Punkte erstellt wurde, wird nun dessen<br />

Aufw<strong>an</strong>d bestimmt. Das Folgt durch <strong>ein</strong>e Einzelabschätzung mit <strong>an</strong>schlieÿen<strong>der</strong><br />

Gruppendiskussion. Es sollte ersichtlich werden, warum die Personen ihre Entscheidungen<br />

gefallen haben. So werden alle möglichen Mehraufwände o<strong>der</strong> Erleichterungen<br />

ersichtlich.<br />

• Am Ende muss das Ergebnis für <strong>ein</strong>en möglichen Dritten noch verständlich aufbereitet<br />

werden.<br />

Einzelne Beispiele für Arbeitsprozesse (bei allen wird <strong>ein</strong> Zeitrahmen vorgegeben):<br />

• Brainstorming ist bei gutem Informationsst<strong>an</strong>d <strong>der</strong> Beteiligten empfehlenswert.<br />

• Einzelarbeit mit <strong>an</strong>schlieÿen<strong>der</strong> Diskussion.<br />

• Wenn viele Dokumente als Informationquelle zum G<strong>an</strong>zen durch genommen werden<br />

müssen, k<strong>an</strong>n m<strong>an</strong> die Schätzung auch als Hausaufgabe verteilen.<br />

Bei allen Fällen muss am Ende <strong>ein</strong>e <strong>ein</strong>zelne Liste <strong>der</strong> Schätzungen entstehen. Dadurch<br />

erhält m<strong>an</strong> Diskussionssto, <strong>der</strong> nicht unterbunden werden soll, son<strong>der</strong>n durch den Mo<strong>der</strong>ator<br />

eektiv geleitet wird. Er achtet auf <strong>ein</strong>e ausgewogene Teamarbeit, bei <strong>der</strong> k<strong>ein</strong>e<br />

M<strong>ein</strong>ung unterdrückt o<strong>der</strong> bloÿgestellt wird.<br />

3.5.2. Anfor<strong>der</strong>ungen <strong>an</strong> <strong>der</strong> Projektleitung<br />

Für jedes Projekt ist <strong>ein</strong> Projektleiter ver<strong>an</strong>twortlich. S<strong>ein</strong> Talent sollte nicht unbedingt in<br />

Klärung groÿen technischen Fragen liegen. Für diesen Posten sind <strong>an</strong><strong>der</strong>e Talente ge<strong>fr</strong>agt.<br />

• Umg<strong>an</strong>g mit <strong>der</strong> Komplexität; <strong>der</strong> Projektleiter muss wissen, was zum Projektauftrag<br />

gehört und was nicht. Er legt fest welche Aspekte berücksichtigt werden und<br />

welche Auswirkungen bei <strong>der</strong> Arbeit entstehen können.<br />

• Gestaltung innovativer Prozesse; <strong>der</strong> Projektleiter sorgt ebenfalls für <strong>ein</strong> kreatives<br />

Arbeitsklima. Er sorgt für Fairness unter den Teammitglie<strong>der</strong>n. Lobt, motiviert und<br />

übt konstruktive Kritik. Auÿerdem unterstützt er das Team mit <strong>der</strong> Verfügungstellung<br />

von Informationsquellen zur Problemlösungen.<br />

• Umg<strong>an</strong>g mit Unsicherheit; er hilft Unsicherheiten zu entschärfen durch Weitergabe<br />

von Informationen, Gestaltung von Einführungen und <strong>der</strong> Erläuterung des Umg<strong>an</strong>ges<br />

mit neuen Anfor<strong>der</strong>ungen. Er ist Ansprechpartner und Vertrauensperson<br />

36


3.5. SCHÄTZUNG IM TEAM<br />

aller Gruppenmitglie<strong>der</strong>. S<strong>ein</strong> Überblick über das G<strong>an</strong>ze ist ge<strong>fr</strong>agt. Daher ist regelmäÿiges<br />

Feedback zwischen ihn und den Gruppenmitglie<strong>der</strong>n <strong>ein</strong>e elementarer<br />

Best<strong>an</strong>dteil.<br />

• Einführung von <strong>ein</strong>er speziellen Projektorg<strong>an</strong>isation; um <strong>ein</strong> Chaos zu vermeiden<br />

sollte <strong>ein</strong>e gezielte Org<strong>an</strong>isationsstruktur <strong>ein</strong>geführt werden. Solche Strukturen können<br />

aus Arbeits- und Spielregeln für das Team bestehen. Je kl<strong>ein</strong>er das Team, desto<br />

demokratischer wird alles geh<strong>an</strong>dhabt. Bei groÿen Gruppen muss immer wie<strong>der</strong> <strong>der</strong><br />

Projektleiter die letzte Entscheidungsinst<strong>an</strong>z darstellen.<br />

• Leitung <strong>ein</strong>es interdisziplinären Teams; m<strong>an</strong> muss <strong>ein</strong> Team formen und stärken.<br />

Hier ist wichtig Rollen zu verteilen und Synergieeekte zu erzeugen.<br />

• Umg<strong>an</strong>g mit Struktur und Kreativität; schwierig aber wichtig ist es immer die richtige<br />

Waage zwischen Kreativität und Struktur zu erhalten. Das <strong>ein</strong>e för<strong>der</strong>t die Ideen,<br />

dass <strong>an</strong><strong>der</strong>e verhin<strong>der</strong>t den Chaos.<br />

• Vertretung nach Auÿen; er tritt mit relev<strong>an</strong>ten Personen auÿerhalb des Teams in<br />

Kontakt um nötige Informationen zu besorgen o<strong>der</strong> die Werbetrommel für die Notwendigkeit<br />

s<strong>ein</strong>es Projektes zu drehen.<br />

3.5.3. Teamentwicklung<br />

<strong>ein</strong> starkes und gutes Team entwickelt sich nicht aus Zufall o<strong>der</strong> sogar sofort. Auf dem<br />

Weg zu DEM Team werden <strong>ein</strong>ige Konikte zu lösen s<strong>ein</strong>. M<strong>an</strong> k<strong>an</strong>n die Entwicklung<br />

<strong>ein</strong>es Teams in vier Phasen aufteilen.<br />

1. Formingphase; in dieser Testphase lernen sich Teammitglie<strong>der</strong> kennen. Die Leute<br />

sind höich zu<strong>ein</strong><strong>an</strong><strong>der</strong>. Das ist <strong>der</strong> richtig Zeitpunkt, um die Rollen zu verteilen,<br />

Teilaufgaben und Arbeitsmethoden zu bestimmen.<br />

2. Stormingphase; nachdem m<strong>an</strong> sich oberächlich kennen gelernt hat, folgt <strong>ein</strong>e Phase<br />

<strong>der</strong> oenen Konikte, Kon<strong>fr</strong>ontationen und Turbulenzen. Je<strong>der</strong> will sich gegenüber<br />

den An<strong>der</strong>en beweisen. Status und Rollen werden neu verteilt.<br />

3. Normingphase; nun sind die Beziehungs<strong>fr</strong>agen geklärt. Es geht um Sach<strong>fr</strong>agen (Aufgabenverteilung,<br />

Arbeitsmethoden und Spielregeln), die endgültig bestimmt werden.<br />

Kooperation ist die Folge.<br />

4. Performingphase; die Basis ist geschaen. Alle Rollen und Aufgaben verteilt und<br />

aller persönliche Probleme geklärt. Ab jetzt beginnt das groÿe Schaen.<br />

3.5.4. Mögliche Gestaltung <strong>ein</strong>es Teamtres<br />

Im Vorfeld erstellt <strong>der</strong> Projektleiter (o<strong>der</strong> die Personen, die für dieses Treen zuständig<br />

ist) <strong>ein</strong>e Tagesordnung. Sie gilt als Arbeitsgrundlage für das Treen. Am Anf<strong>an</strong>g sollten<br />

37


KAPITEL 3. PLANUNG VON WEB-PROJEKTEN<br />

die wichtigsten Punkte bearbeitet werden und erst am Ende kommt die leichte Kost. Dabei<br />

muss m<strong>an</strong> aber immer auf den logischen Aufbau achten. D<strong>an</strong>ach folgt die Einladung<br />

mit <strong>der</strong> Tagesordnung. In <strong>der</strong> Einladung steht neben Ort, Zeit und Raum auch welche<br />

Informationen benötigt werden o<strong>der</strong> Vorwissen verl<strong>an</strong>gt wird. Allen sollte während <strong>der</strong><br />

Sitzung die Tagesordnung immer gegenwärtig s<strong>ein</strong>. Am Anf<strong>an</strong>g wird die Tagesordnung<br />

noch mal vorgestellt und <strong>ein</strong> Protokollführer ern<strong>an</strong>nt. Die Gesprächsleitung wird durch<br />

<strong>ein</strong>en Mo<strong>der</strong>ator übernommen. Dieser legt mit <strong>der</strong> Gruppe die Regeln <strong>der</strong> Gesprächsführung<br />

fest und achtet auf ihrer Einhaltung. Er achtet auf Fairness und darauf das sich<br />

möglichst alle <strong>ein</strong>bringen. Zwischenergebnisse innerhalb <strong>der</strong> Sitzung werden für alle klar<br />

sichtbar notiert. Das Protokoll sollte allen <strong>an</strong>schlieÿlich zugänglich gemacht werden.<br />

3.6. Projektpl<strong>an</strong> und Mitarbeiter<strong>ein</strong>satz<br />

3.6.1. Projektpl<strong>an</strong><br />

Der Projektpl<strong>an</strong> ...<br />

• legt Beginn, Ende und Reihenfolge <strong>der</strong> Tätigkeiten im Projekt fest<br />

• deniert, wer w<strong>an</strong>n was liefert<br />

• zeigt Abhängigkeiten<br />

• ist allgem<strong>ein</strong> verständlich (mit <strong>ein</strong>em Blick weiÿ je<strong>der</strong> was los ist)<br />

• unterstützt Abstimmungen (je<strong>der</strong> erkennt mit wem er sich absprechen muss)<br />

Der Projektpl<strong>an</strong> wird aus <strong>der</strong> Aufw<strong>an</strong>dsschätzung abgeleitet. Üblicherweise wird die Schätzung<br />

in <strong>ein</strong> G<strong>an</strong>tt-Chart (bestimmte Form <strong>ein</strong>es Projektpl<strong>an</strong>s) übertragen.<br />

Der G<strong>an</strong>tt-Chart besteht aus horizontalen Balken. Je<strong>der</strong> Balken repräsentiert den Verlauf<br />

<strong>ein</strong>er Tätigkeit mit dessen Anf<strong>an</strong>g und Ende. Ebenfalls wird in <strong>ein</strong>em G<strong>an</strong>tt-Chart<br />

die Reihenfolge <strong>der</strong> Tätigkeiten ersichttlich und die d<strong>an</strong>n beteiligten Mitarbeiter. Diese<br />

Darstellungsmethode stammt von Henry L. G<strong>an</strong>tt (1917 entwickelt).<br />

38


3.6. PROJEKTPLAN UND MITARBEITEREINSATZ<br />

Abbildung 3.1.: Vari<strong>an</strong>te <strong>ein</strong>es G<strong>an</strong>tt-Charts<br />

Bevor m<strong>an</strong> jedoch die Aufw<strong>an</strong>dsschätzung so <strong>ein</strong>fach in <strong>ein</strong>em Projektpl<strong>an</strong> ummünzt,<br />

muss m<strong>an</strong> noch <strong>ein</strong>ige Punkte beachten. Das sichert die Qualität des Projektpl<strong>an</strong>s.<br />

• Bevor die Reihenfolge <strong>der</strong> Tätigkeiten festgelegt werden, sollte <strong>der</strong> Mitarbeiter<strong>ein</strong>satz,<br />

die Zusammenarbeit und die Übergabepunkte feststehen.<br />

• Die Abhängigkeiten sollten deniert s<strong>ein</strong>.<br />

• Der Projektpl<strong>an</strong> darf nicht zu detailliert s<strong>ein</strong>, um die Übersichtlichkeit zu behalten.<br />

Aber wichtige Punkte (wie Meilenst<strong>ein</strong>e) sollten deutlich ersichtlich s<strong>ein</strong>.<br />

Zu diesen Punkten erfahren in den nächsten Kapiteln weiter erläutert.<br />

3.6.2. Mitarbeiter<strong>ein</strong>satz<br />

Wie öfter schon erwähnt können Abhängigkeiten zwischen den Tätigkeiten existieren.<br />

Wenn ja, müssen diese sequentiell abgearbeitet werden. Wenn k<strong>ein</strong>e Abhängigkeiten zwischen<br />

den Aufgaben bestehen, d<strong>an</strong>n können diese auch parallel abgearbeitet werden. Daher<br />

muss immer die Abhängigkeit zwischen zwei Tätigkeiten <strong>an</strong>alysiert werden. Durch<br />

die richtige Mischung aus paralleler und sequentieller Arbeit erhält m<strong>an</strong> <strong>ein</strong>e qualitative<br />

Arbeit in <strong>ein</strong>em vernünftigen Zeitrahmen abzuliefern.<br />

Dabei müssen aber nicht nur Abhängigkeiten erk<strong>an</strong>nt werden. Son<strong>der</strong>n m<strong>an</strong> muss auch<br />

die Leute auf ihre Arbeit vorbereiten. Es sollten zum Beispiel k<strong>ein</strong>e harte Übergabepunkte<br />

entstehen. Wenn sich <strong>ein</strong> Mitarbeiter erst mit s<strong>ein</strong>er Arbeit beschäftigt, nachdem er sie<br />

von s<strong>ein</strong>em Vorgänger abgeliefert bekommt, d<strong>an</strong>n ist was schief gelaufen. Bis er sich <strong>ein</strong>gearbeitet<br />

hat, ist schon wie<strong>der</strong> <strong>ein</strong>ige Zeit verloren. Um das zu verhin<strong>der</strong>n, müssen die<br />

Leute schon vor <strong>der</strong> Übergabe sich mit ihrer Arbeit beschäftigen o<strong>der</strong> involviert werden.<br />

Denn jede Disziplin muss rechtzeitig erfahren, welche Einschränkungen und Anfor<strong>der</strong>ungen<br />

sie von den <strong>an</strong><strong>der</strong>en erhält. Dafür ist wie<strong>der</strong>um <strong>der</strong> Projektleiter zuständig um das<br />

zu gewährleisten.<br />

39


KAPITEL 3. PLANUNG VON WEB-PROJEKTEN<br />

Zu Beginn des Projektes ist auch empfehlenswert zunächst nur die erfahrenen Leute <strong>ein</strong>zusetzen<br />

(Bsp. Bei <strong>der</strong> Ist-Beschreibung und Pichtenheft). Der Grund liegt im fachlichen<br />

Anspruch und <strong>der</strong> Ver<strong>an</strong>twortung <strong>der</strong> Aufgabe.<br />

Der Gesamt<strong>ein</strong>satz <strong>der</strong> Mitarbeiter k<strong>an</strong>n schlieÿlich so aussehen.<br />

• Projektvorbereitung, Pichtenheft, Ist-Beschreibung => Kernteam mit erfahrenen<br />

Leuten<br />

• Grobkonzept => Qualizierte Spezialisten<br />

• Design, IT => Volles Team<br />

Abhängigkeits<strong>an</strong>alyse<br />

Bei <strong>der</strong> Abhängigkeits<strong>an</strong>alyse wird festgestellt, was für Voraussetzungen bei je<strong>der</strong> Tätigkeit<br />

erfüllt s<strong>ein</strong> müssen um diese <strong>an</strong>gehen zu können. Die Voraussetzungen könnten<br />

s<strong>ein</strong>:<br />

• Ergebnisse <strong>an</strong><strong>der</strong>er Tätigkeiten werden benötigt<br />

• Mitwirkung <strong>der</strong> Kunden<br />

• Ressourcen, die m<strong>an</strong> benötigt<br />

• Zugrie auf Schnittstellen etc.<br />

Nur so k<strong>an</strong>n die richtige Reihenfolge erk<strong>an</strong>nt werden. Wodurch wie<strong>der</strong>um <strong>der</strong> "kritische<br />

Pfadërsichtlich wird. Der kritische Pfad ist die Abfolge <strong>der</strong>jenigen auf<strong>ein</strong><strong>an</strong><strong>der</strong> folgenden<br />

Tätigkeiten, welche beginnend beim Projektstart und endend bei Projektende die Dauer<br />

des Projektes bestimmen. Das Hervorheben des kritischen Pfades im Projektpl<strong>an</strong> erlaubt<br />

Maÿnahmen zur Verkürzung <strong>der</strong> Projektdauer. Beispielsweise erkennt m<strong>an</strong> <strong>an</strong> welchen<br />

Stellen sinnvoll ist mehr Leute <strong>ein</strong>zusetzen.<br />

3.7. Iteratives Vorgehen<br />

Mit Iteration in Projekten, m<strong>ein</strong>t m<strong>an</strong> das wie<strong>der</strong>holte Durchlaufen von Projektschritten.<br />

Dabei können <strong>ein</strong>zelne Schritte (wie die Testphase) mehrmals direkt wie<strong>der</strong>holt werden,<br />

o<strong>der</strong> <strong>ein</strong>e Abfolge von Schritten wird erneut durchg<strong>an</strong>gen.<br />

Die Iteration k<strong>an</strong>n unterschiedliche Formen <strong>an</strong>nehmen.<br />

Ein Prototyp dient als Versuchsobjekt, das bereits wesentliche Merkmale des En<strong>der</strong>gebnisses<br />

aufweist. Das Ziel ist es, vorab kritische Aspekte (Machbarkeit usw.) zu erkennen.<br />

Auÿerdem k<strong>an</strong>n <strong>der</strong> Kunde das bisherige Ergebnis mit s<strong>ein</strong>en Vorstellungen abgleichen<br />

und wenn nötig korrigieren. In allen Phasen des Projektes können Implementierungen<br />

erfolgen, um mögliche Lösungen zu testen.<br />

40


3.8. FAZIT<br />

Eine Vorab-Lösung k<strong>an</strong>n auch erstmal durch bestimmte Iterationsschritte erfolgen.<br />

Nachdem <strong>ein</strong> Pichtenheft o<strong>der</strong> <strong>ein</strong> Grobkonzept vorliegt, werden die Schritte F<strong>ein</strong>konzeption,<br />

Implementierung und Test wie<strong>der</strong>holt durchlaufen. Dabei werden Teile <strong>der</strong> Lösung<br />

hinter<strong>ein</strong><strong>an</strong><strong>der</strong> entwickelt o<strong>der</strong> in mehreren Iterationsschritten schrittweise ausgebaut. Das<br />

verfolgt den Zweck, bereits <strong>fr</strong>üh <strong>ein</strong>e nutzbare Teillösung (gut für den Kunden) zu haben.<br />

Durch <strong>ein</strong> schnellen Durchlauf <strong>der</strong> Schritte k<strong>an</strong>n ebenfalls <strong>der</strong> Aufw<strong>an</strong>d besser geschätzt<br />

werden. Auÿerdem k<strong>an</strong>n von Iterationsschritt zu Iterationsschritt die gemachten Erfahrungen<br />

hil<strong>fr</strong>eich <strong>an</strong>gewendet werden.<br />

Beim Prinzip des Pilotprojekt wird <strong>ein</strong>e <strong>ein</strong>geschränkte Version entwickelt. Die dient<br />

d<strong>an</strong>n zum Einsatz in <strong>ein</strong>em Testbereich. Dadurch können Erfahrungen gesammelt werden<br />

bei geringerem Schadensrisiko. Nach <strong>ein</strong>er Analyse <strong>der</strong> Testphase wird d<strong>an</strong>n das Projekt<br />

weiterentwickelt.<br />

Oft wird die Iteration mit dem Wasserfallmodel kombiniert (o<strong>der</strong> umgekehrt). Es ist von<br />

<strong>der</strong> Teilaufgabe abhängig, welches Prinzip m<strong>an</strong> verfolgt.<br />

Das Problem bei <strong>der</strong> Iteration ist die Erschwerung <strong>der</strong> Aufw<strong>an</strong>dsschätzung. Wenn sich die<br />

Iteration auf inhaltliche Erkenntnisse beschränkt, d<strong>an</strong>n ist <strong>ein</strong>e <strong>fr</strong>üheAbschätzung möglich.<br />

Jedoch wenn erst nach den ersten Schritten <strong>der</strong> Ablauf erkennbar wird, k<strong>an</strong>n m<strong>an</strong> den<br />

Projektpl<strong>an</strong> für die weiteren Schritte nur nach und nach erstellen. Bei <strong>der</strong> Erstellung <strong>ein</strong>es<br />

Angebots, darf nur <strong>der</strong> pl<strong>an</strong>bare Bereich berücksichtigt werden. O<strong>der</strong> m<strong>an</strong> integriert noch<br />

<strong>ein</strong> Risikoaufschlag.<br />

3.8. Fazit<br />

Am Ende k<strong>an</strong>n m<strong>an</strong> sagen, dass <strong>ein</strong> erfolgreicher Projektverlauf von <strong>ein</strong>er guten Pl<strong>an</strong>ung<br />

abhängt. Und diese Pl<strong>an</strong>ung hängt wie<strong>der</strong>um von <strong>ein</strong>em starken Team, aber hauptsichtlich<br />

von den Projektleiter ab. Er ist für alles Ver<strong>an</strong>twortlich. Das Team erzielt wohl das<br />

Ergebnis, aber er gibt vor wie es zu erreichen ist.<br />

41


4. Softwarearchitektur und<br />

Konzeption <strong>der</strong><br />

Anwendungsschicht<br />

4.1. Einleitung<br />

Bei <strong>der</strong> Entwicklung von Informationssystemen hat sich in den letzten Jahren <strong>ein</strong> klarer<br />

Trend zu Multi-Schichten-Architekturen abgezeichnet [Has00]. Ihre Vorteile gegenüber<br />

monolithischen Systemen ohne scharfe Trennung zwischen Schichten wie Datenhaltung<br />

und -beschaung, Geschäftslogik und Präsentation liegen vor allem in besserer Erweiterbarkeit,<br />

Wartbarkeit und Skalierbarkeit. In den Entwicklungsprozessen solcher Softwaresysteme<br />

ist in immer stärkerem Maÿe konzeptionelles Denken und Arbeiten im Gegensatz<br />

zu Programmieren im Kl<strong>ein</strong>en ge<strong>fr</strong>agt, was zwar <strong>der</strong> Notwendigkeit des letzten k<strong>ein</strong>en<br />

Abbruch tut, allerdings dessen Ezienz deutlich erhöhen k<strong>an</strong>n und vor allem zu <strong>ein</strong>er höherer<br />

Qualität des Ergebnisses sowohl <strong>der</strong> Software selbst als auch <strong>der</strong> dazugehörigen<br />

Dokumentation führt.<br />

Die erstarkende Bedeutung von Softwarearchitektur und ihrer Konzeption kommt auch<br />

im J2EE-Applikationsmodell [Sun05] zum Ausdruck, auf das sich die vorliegende Arbeit<br />

aufgrund ihres in die Projektgruppe <strong>ein</strong>gebetteten Kontextes häug fokussiert. So stellen<br />

viele <strong>der</strong> für PGPortal relev<strong>an</strong>ten J2EE-Technologien nicht nur r<strong>ein</strong>e APIs zur Nutzung<br />

bestimmter Funktionalitäten zur Verfügung, son<strong>der</strong>n geben oft auch <strong>ein</strong>e bestimmte Architektur<br />

vor[DH03].<br />

In Kapitel 4.2 dieser Arbeit werden zunächst <strong>ein</strong>ige grundlegende, die Softwarearchitektur<br />

betreende Aspekte vorgestellt. Kapitel 4.3 stellt <strong>ein</strong>ige zentrale J2EE-Architekturkonzepte<br />

<strong>der</strong> Anwendungsschicht vor, während Kapitel 4.4 ausgewählte Entwurfsmuster für <strong>der</strong>en<br />

möglichst optimale Integration in konkrete Informationssysteme beschreibt. Mit Kapitel<br />

4.5 folgen schlieÿlich Fazit und Ausblick.<br />

4.2. Softwarearchitektur und Komponenten<br />

Zur Klärung des Softwarearchitektur-Begris hier zunächst <strong>ein</strong> Auszug aus IEEE 1471-<br />

2000 [MEH01]:<br />

Architecture: The fundamental org<strong>an</strong>ization of a system embodied in its components, their<br />

relationships to each other, <strong>an</strong>d to the environment, <strong>an</strong>d the principles guiding its design<br />

<strong>an</strong>d evolution.<br />

42


4.3. KONZEPTE UND TECHNOLOGIEN<br />

Zentral ist dabei vor allem <strong>der</strong> Komponentenbegri. Da über die genaue Denition dieses<br />

Begris in <strong>der</strong> Fachwelt noch k<strong>ein</strong>e Einigkeit herrscht soll hier lediglich <strong>ein</strong>e grobe<br />

Beschreibung stattnden, und zwar insbeson<strong>der</strong>e <strong>ein</strong>e solche, die für die <strong>an</strong>schlieÿenden<br />

konkreten Technologiebetrachtungen passend ersch<strong>ein</strong>t.<br />

Unter <strong>ein</strong>er Komponente versteht m<strong>an</strong> im Software Engineering <strong>ein</strong>e in sich abgeschlossene<br />

Entität, die <strong>ein</strong>e bestimmte Aufgabe in <strong>ein</strong>em Gesamtsystem erfüllt. Dazu stellt sie über<br />

<strong>ein</strong>e präzise denierte Schnittstelle ihre Dienste <strong>an</strong><strong>der</strong>en Komponenten zur Verfügung.<br />

Komponenten sollten unter<strong>ein</strong><strong>an</strong><strong>der</strong> lose gekoppelt (losely coupled), d.h. so wenig wie<br />

möglich auf die spezielle Arbeitsweise <strong>der</strong> jeweils <strong>an</strong><strong>der</strong>en Komponenten spezialisiert s<strong>ein</strong>.<br />

Auf diese Weise können die Komponenten weitestgehend autonom agieren und die Aspekte<br />

Wartbarkeit und Wie<strong>der</strong>verwendung beides Grundprinzipien im Software Engineering<br />

werden äuÿerst positiv be<strong>ein</strong>uÿt.<br />

Häug auch als essentiell für <strong>ein</strong>e Komponente <strong>an</strong>gesehen wird neben <strong>der</strong> schon erwähnten<br />

Schnittstellendenition <strong>ein</strong> ebenfalls nach auÿen <strong>an</strong>gebotener Deskriptor,<br />

<strong>der</strong> diverse wichtige Informationen über sie enthält. Dazu gehören etwa Abhängigkeitsinformationen,<br />

benötigte Ressourcen, Parameter für Laufzeitumgebungen und <strong>der</strong>gleichen<br />

mehr. Anh<strong>an</strong>d solcher Informationen wird es d<strong>an</strong>n auch möglich, Komponenten semiautomatisch<br />

in laufende Systeme zu integrieren, was in mo<strong>der</strong>nen Umgebungen immer<br />

häuger zur Anfor<strong>der</strong>ung wird.<br />

Die Architektur <strong>der</strong> Anwendungsschicht heutiger Informationssysteme setzt in breitem<br />

Umf<strong>an</strong>g auf den Komponentenged<strong>an</strong>ken auf, was verschiedene Gründe hat. Mo<strong>der</strong>ne Komponenten<strong>fr</strong>ameworks<br />

erlauben <strong>ein</strong>e konkrete und eleg<strong>an</strong>te Umsetzung dieses Konzepts mit<br />

objektorientierten Mitteln und bieten dabei <strong>ein</strong>e sehr breite Middleware-Unterstützung für<br />

viele wie<strong>der</strong>kehrende Problembereiche, etwa Tr<strong>an</strong>saktionen, Persistenz o<strong>der</strong> Verteiltheit.<br />

Diese Aspekte sind ohne Middlewareunterstützung in vielen Bereichen unter den jeweils<br />

gegebenen Voraussetzungen gar nicht mehr zu realisieren. Auÿerdem erlaubt die komponentenbasierte<br />

Softwareentwicklung insbeson<strong>der</strong>e zu Beginn <strong>der</strong> Projektphase <strong>ein</strong> stark<br />

Top-Down-orientiertes Vorgehen, was M<strong>an</strong>agementvorgaben zumindest zum Sch<strong>ein</strong> <br />

zunächst eher entgegenkommt als <strong>an</strong><strong>der</strong>e Vorgehensmodelle.<br />

4.3. Konzepte und Technologien<br />

4.3.1. J2EE Multi-Schichten-Architektur<br />

Abbildung 4.1 gibt <strong>ein</strong>en Überblick über das allgem<strong>ein</strong>e Applikationsmodell von J2EE-<br />

Systemen. Von beson<strong>der</strong>er Bedeutung für diese Arbeit ist dabei die Schicht <strong>der</strong> Geschäftslogik<br />

o<strong>der</strong> auch Anwendungsschicht.<br />

4.3.2. Technologien <strong>der</strong> Anwendungsschicht<br />

Die Geschäftslogik wird in <strong>ein</strong>er J2EE-Anwendung in <strong>der</strong> Regel durch Enterprise Java<br />

Be<strong>an</strong>s (EJBs) umgesetzt. Es h<strong>an</strong>delt sich dabei um st<strong>an</strong>dardisierte, in <strong>der</strong> Programmiersprache<br />

Java implementierte, serverseitige Komponenten, die im Kontext <strong>ein</strong>er speziellen<br />

43


KAPITEL 4. SOFTWAREARCHITEKTUR UND KONZEPTION DER ANWENDUNGSSCHICHT<br />

Abbildung 4.1.: J2EE Enterprise Application Model; Quelle: Sun Microsystems ([Sun05])<br />

Laufzeitumgebung, dem EJB-Container, laufen. Dieser ist Teil <strong>ein</strong>es J2EE-Applikationsservers<br />

und verwaltet die EJB-Komponenten.<br />

Die EJB 2.0 Spezikation [Sun04] kennt drei Arten von EJB-Komponenten: Entity Be<strong>an</strong>s,<br />

Session Be<strong>an</strong>s und Message-Driven Be<strong>an</strong>s. Diese drei Subtypen von Komponenten <strong>der</strong><br />

Anwendungsschicht von J2EE-Systemen werden weiter unten jeweils näher beschrieben.<br />

Enterprise Java Be<strong>an</strong>s<br />

Kommunikation zwischen und mit EJBs funktioniert nicht durch <strong>ein</strong>e direkte Inst<strong>an</strong>ziierung<br />

<strong>der</strong> Be<strong>an</strong>-Klassen son<strong>der</strong>n im Allgem<strong>ein</strong>en über Java Remote Method Invocation<br />

über das Internet Inter-ORB Protocol Java RMI-IIOP 1 . Die Verwaltung <strong>der</strong> tatsächlichen<br />

Inst<strong>an</strong>zen, die das Interface javax.ejb.EJBObject implementierende Objekte darstellen,<br />

ist dabei Aufgabe des Applikationsservers.<br />

Clients <strong>ein</strong>er EJB-Komponente können z. B. Portlets, Servlets o<strong>der</strong> Applets s<strong>ein</strong>, aber<br />

auch wie<strong>der</strong> <strong>an</strong><strong>der</strong>e EJBs. Sie kommunizieren mit <strong>der</strong> Komponente, indem sie mithilfe<br />

des Java Naming <strong>an</strong>d Directory Service JNDI 2 <strong>an</strong> <strong>ein</strong>e Referenz auf <strong>ein</strong> spezielles Ob-<br />

1<br />

Documentation, Java RMI over IIOP: http://java.sun.com/products/rmi-iiop/ (Abruf: 16. April<br />

2006)<br />

2<br />

Core Java, Java Naming <strong>an</strong>d Directory Interface: http://java.sun.com/products/jndi/ (Abruf: 16.<br />

April 2006)<br />

44


4.3. KONZEPTE UND TECHNOLOGIEN<br />

jekt gel<strong>an</strong>gen. Dieses Objekt, welches das Factory Entwurfsmuster umsetzt und in <strong>der</strong><br />

EJB-Spezikation home object gen<strong>an</strong>nt wird, implementiert <strong>ein</strong> bestimmtes Interface,<br />

das home interface. Mit dem home interface legt <strong>der</strong> Entwickler <strong>der</strong> EJB-Komponenten<br />

fest, auf welche Weise das EJB-Objekt im Applikationsserver initialisiert werden soll. Bei<br />

Session Be<strong>an</strong>s besteht das home interface häug nur aus <strong>ein</strong>er <strong>ein</strong>zigen, parameterlosen<br />

Factory-Methode create(). Da EJB Objekte von Entity Be<strong>an</strong>s <strong>ein</strong>e Sicht auf die darunterliegende<br />

Datenb<strong>an</strong>k repräsentieren, bieten ihre home interfaces dagegen zumindest<br />

<strong>ein</strong>e Methode zum Aunden dieser Daten <strong>an</strong>: findByPrimaryKey. In <strong>der</strong> Regel gibt es<br />

hier weitere solcher sogen<strong>an</strong>nten n<strong>der</strong> Methoden sowie Methoden zum Erzeugen von<br />

neuen Datensätzen.<br />

Die Methoden des home interface haben gem<strong>ein</strong>, dass sie von Ausnahmen abgesehen<br />

die Objekte zurückliefern, die das remote interface <strong>der</strong> EJB-Komponente implementieren.<br />

Das remote interface deniert die eigentlichen Methoden, die die EJB-Komponente<br />

den Clients <strong>an</strong>bietet. Bei Entity Be<strong>an</strong>s sind dies in erster Linie get und set Methoden,<br />

die für das Lesen und Schreiben von persistenten Daten benutzt werden. Session Be<strong>an</strong>s<br />

dagegen führen hier die Signaturen ihrer sog. business methods auf, bei denen es sich<br />

um <strong>an</strong>wendungsfallspezische Methoden h<strong>an</strong>delt, die in <strong>der</strong> Regel <strong>ein</strong>en bestimmten Geschäftsprozess<br />

abbilden und jeweils <strong>ein</strong>e Nutzer<strong>an</strong><strong>fr</strong>age bedienen.<br />

Dieses Zusammenspiel aus home interface, remote interface und eigentlicher Be<strong>an</strong>-Klasse<br />

sowie RMI-IIOP und JNDI bietet <strong>ein</strong>e starke Entkopplung zwischen <strong>der</strong> EJB-Komponente<br />

und ihren Clients und ermöglicht Tr<strong>an</strong>sparenz bei <strong>der</strong> Kommunikation zwischen verschiedenen<br />

Java Virtual Machines, die auf verschiedenen Rechnern sowohl in lokalen Netzen<br />

als auch im Internet laufen können.<br />

Wenn allerdings die Verteiltheit <strong>der</strong> Komponenten k<strong>ein</strong> relev<strong>an</strong>tes Kriterium ist, was insbeson<strong>der</strong>e<br />

häug bei Anwendungen <strong>der</strong> Fall ist, bei denen Entity Be<strong>an</strong>s und auf sie zugreifende<br />

Session Be<strong>an</strong>s im gleichen Prozess laufen sollen, wird durch diesen Mech<strong>an</strong>ismus<br />

<strong>ein</strong> erheblicher, vermeidbarer Overhead erzeugt. Gerade das durch RMI-IIOP verursachte<br />

Vor- und Nachbereiten von Übergabeparametern und Rückgabewerten für den Vers<strong>an</strong>d<br />

über <strong>ein</strong> Netzwerk, das sog. (un-) marshalling, sorgt in diesem Fall für starke Einbuÿen<br />

bei <strong>der</strong> Perform<strong>an</strong>z. Aus diesem Grund wurden mit <strong>der</strong> EJB 2.0 Spezikation <strong>an</strong>alog zu<br />

home interface und remote interface das local home interface und das local interface <strong>ein</strong>geführt.<br />

Das JNDI liefert d<strong>an</strong>n statt <strong>ein</strong>er Referenz zu <strong>ein</strong>em entfernten Objekt <strong>ein</strong>e<br />

lokale Referenz, wodurch <strong>der</strong> Overhead stark verringert wird.<br />

Eine EJB-Komponente k<strong>an</strong>n gleichzeitig sowohl <strong>ein</strong> local interface als hochperform<strong>an</strong>te<br />

Schnittstelle innerhalb <strong>ein</strong>es Prozesses als auch <strong>ein</strong> remote interface für den Fernzugri<br />

<strong>an</strong>bieten.<br />

Neben <strong>ein</strong>em Deployment-Deskriptor, <strong>der</strong> diverse Informationen insbeson<strong>der</strong>e auch<br />

solche, die für das korrekte Deployment für den Applikationsserver notwendig sind <br />

über die Komponente in XML-Syntax b<strong>ein</strong>haltet, bestehen EJB-Komponenten also aus<br />

folgenden Best<strong>an</strong>dteilen:<br />

1. Dem Home Interface, abgeleitet von javax.ejb.EJBHome<br />

2. Dem Remote Interface, abgeleitet von javax.ejb.EJBObject<br />

45


KAPITEL 4. SOFTWAREARCHITEKTUR UND KONZEPTION DER ANWENDUNGSSCHICHT<br />

3. Dem Local Home Interface, abgeleitet von javax.ejb.EJBLocalHome<br />

4. Dem Local Interface, abgeleitet von javax.ejb.EJBLocalObject<br />

5. Der Be<strong>an</strong>-Klasse, abgeleitet je nach Art <strong>der</strong> EJB-Komponente von javax.ejb-<br />

.EntityBe<strong>an</strong> o<strong>der</strong> javax.ejb.SessionBe<strong>an</strong><br />

Dies führt bereits bei relativ wenigen EJBs innerhalb <strong>ein</strong>er Anwendung zu <strong>ein</strong>er groÿen<br />

Anzahl <strong>an</strong> Java-Dateien. Zugunsten von Übersichtlichkeit und Einheitlichkeit werden die<br />

EJB-Best<strong>an</strong>dteile daher konform zu den J2EE Naming Conventions for Enterprise Applications<br />

3 ben<strong>an</strong>nt. Abbildung 4.2 zeigt die Zusammenhänge zwischen den erläuterten<br />

EJB-Best<strong>an</strong>dteilen in UML-Syntax.<br />

Abbildung 4.2.: Best<strong>an</strong>dteile <strong>ein</strong>er Session Be<strong>an</strong> SearchBe<strong>an</strong>; die Assoziationen zwischen<br />

<strong>der</strong> Be<strong>an</strong>-Klasse und den Interfaces sind nicht in Java-Syntax son<strong>der</strong>n<br />

ausschlieÿlich mit <strong>der</strong> EJB-Spezikation begründet. Entsprechende Fehler<br />

treten infolgedessen erst beim Deployment zutage und führen d<strong>an</strong>n zu<br />

<strong>ein</strong>er EJB Specication Violation.<br />

Entity Be<strong>an</strong>s<br />

Für den Zugri auf die Datenhaltungsschicht sind Entity Be<strong>an</strong>s vorgesehen. Sie modellieren<br />

gem<strong>ein</strong>sam das persistente Datenmodell des Systems, wobei in <strong>der</strong> Regel <strong>ein</strong>e En-<br />

3 http://java.sun.com/blueprints/code/namingconventions.html (Abruf: 16. April 2006)<br />

46


4.3. KONZEPTE UND TECHNOLOGIEN<br />

tity Be<strong>an</strong> jeweils <strong>ein</strong>e Entität abdeckt. Es k<strong>an</strong>n hier zwischen Be<strong>an</strong> M<strong>an</strong>aged Persistence<br />

(BMP) und Container M<strong>an</strong>aged Persistence unterschieden werden.<br />

Im Falle von BMP erfolgt die Persistenzsicherung durch die Entity Be<strong>an</strong> selbst, d. h. <strong>der</strong><br />

Entwickler muss in <strong>der</strong> Regel mithilfe von Au<strong>fr</strong>ufen <strong>der</strong> Java Database Connectivity<br />

(JDBC 4 ) API dafür Sorge tragen, dass die Daten <strong>ein</strong>em DBMS übergeben bzw. aus<br />

selbigem bezogen werden werden.<br />

Bei CMP erfolgen die persistenzgewährleistenden Operationen durch den EJB-Container,<br />

spezieller durch dessen CMP-Engine. Der Entwickler speziziert dazu die zu persistierenden<br />

Datenfel<strong>der</strong> sowie verschiedene notwendige Zusatzinformationen (z. B. über den<br />

jeweiligen Primärschlüssel) in speziellen XML-Deployment-Deskriptoren. Auÿerdem stellt<br />

er <strong>ein</strong>e abstrakte Java-Klasse bereit, die Signaturen <strong>der</strong> Methoden enthält, über die auf die<br />

Daten zugegrien werden soll. Der Container erzeugt daraus automatisiert <strong>ein</strong>e konkrete<br />

Implementierung <strong>der</strong> Entity Be<strong>an</strong> Klasse. Eine detaillierte Diskussion <strong>der</strong> Beson<strong>der</strong>heiten,<br />

Vorteile und Nachteile <strong>der</strong> CMP-Technologie liegt auÿerhalb des Themenbereichs dieser<br />

Arbeit. Es sei hier lediglich <strong>an</strong>gemerkt, dass aus softwarearchitektonischer Sicht CMP<br />

im Allgem<strong>ein</strong>en BMP vorzuziehen ist, da sie <strong>ein</strong>e Entkopplung vom zugrunde liegenden<br />

DBMS bietet.<br />

Mit CMP eng verknüpft sind Container M<strong>an</strong>aged Relationships (CMR). Durch den Einsatz<br />

dieser Technologie, mit <strong>der</strong> die Beziehungen zwischen Entity Be<strong>an</strong>s unterstützt durch<br />

den EJB-Container modelliert werden können, k<strong>an</strong>n ebenso wie durch CMP <strong>der</strong> Implementierungsaufw<strong>an</strong>d<br />

verringert und die interne Qualität <strong>der</strong> Software erhöht werden. Wie<br />

auch bei CMP wird dazu das gewünschte Verhalten gröÿtenteils deklarativ durch Einträge<br />

in Deployment-Deskriptoren festgelegt. So k<strong>an</strong>n beispielsweise <strong>ein</strong>e 1..n-Beziehung<br />

zwischen zwei Entitäten deklariert werden. Die Entity Be<strong>an</strong> <strong>der</strong> 1-Seite k<strong>an</strong>n dadurch<br />

sehr <strong>ein</strong>fach um die Möglichkeit erweitert werden, ausgehend von ihr alle zugeordneten<br />

Daten <strong>der</strong> n-Seite zu erhalten. Ebenso k<strong>an</strong>n die Entity Be<strong>an</strong> <strong>der</strong> n-Seite durch <strong>ein</strong> solches<br />

CMR-Feld in die Lage versetzt werden, die zugeordneten Daten <strong>der</strong> 1-Seite <strong>der</strong> Beziehung<br />

<strong>an</strong>zubieten. Auf Datenb<strong>an</strong>k-Ebene sorgt d<strong>an</strong>n <strong>der</strong> Container dafür, dass die entsprechende<br />

Tabelle <strong>ein</strong>e Fremdschlüssel-Spalte erhält. Auch die notwendigen SQL-Ab<strong>fr</strong>agen <br />

im Beispiel etwa mit <strong>ein</strong>er geeigneten JOIN-Operation werden automatisch durch den<br />

Container generiert. Eine Einschränkung diese Technologie ist, dass nur das local interface<br />

<strong>ein</strong>er Entity Be<strong>an</strong> über CMR-Fel<strong>der</strong> verfügen k<strong>an</strong>n, nicht aber das remote interface.<br />

Session Be<strong>an</strong>s<br />

Während Entity Be<strong>an</strong>s, die als Schnittstelle <strong>der</strong> Geschäftslogik zur darunter liegenden Datenhaltungsschicht<br />

gesehen werden können, den Zugri auf das Datenmodell in objektorientierter<br />

Art und Weise <strong>an</strong>bieten, modellieren Session Be<strong>an</strong>s die eigentliche Geschäftslogik<br />

des Systems. Ihre Inst<strong>an</strong>zen bedienen also jeweils die An<strong>fr</strong>agen <strong>ein</strong>es bestimmten Clients,<br />

<strong>der</strong> durch den Au<strong>fr</strong>uf <strong>der</strong> zur Verfügung gestellten Methoden <strong>der</strong> business methods <br />

auf das System zugreift. Die Session Be<strong>an</strong>s ihrerseits greifen bei <strong>der</strong> Bearbeitung dieser<br />

Nutzer<strong>an</strong><strong>fr</strong>agen auf die Entity Be<strong>an</strong>s zu.<br />

4 http://java.sun.com/products/jdbc/ (Abruf: 16. April 2006)<br />

47


KAPITEL 4. SOFTWAREARCHITEKTUR UND KONZEPTION DER ANWENDUNGSSCHICHT<br />

Es gibt zwei verschiedene Arten von Session Be<strong>an</strong>s: Zust<strong>an</strong>dslose (Stateless Session Be<strong>an</strong>s)<br />

und zust<strong>an</strong>dsbehaftete (Stateful Session Be<strong>an</strong>s). Die Entscheidung für <strong>ein</strong>e dieser beiden<br />

Unterarten ist <strong>ein</strong>e wichtiger Schritt im Architekturentwurf.<br />

Bei <strong>der</strong> Diskussion im Software Engineering insbeson<strong>der</strong>e im Umfeld von Enterprise<br />

Java hat sich die Ansicht durchgesetzt, dass Geschäftslogik nach Möglichkeit zust<strong>an</strong>dslos,<br />

d.h. unter Einsatz von Stateless Session Be<strong>an</strong>s implementiert werden sollte. Bei <strong>der</strong><br />

Implementierung von Stateless Session Be<strong>an</strong>s muss darauf geachtet werden, dass serverseitig<br />

<strong>ein</strong>e Inst<strong>an</strong>z (EJBObject) nicht <strong>an</strong> <strong>ein</strong>en Client gebunden ist, son<strong>der</strong>n durch das<br />

durch den Applikationsserver durchgeführte inst<strong>an</strong>ce pooling für An<strong>fr</strong>agen von verschiedenen<br />

Clients wie<strong>der</strong>verwendet wird. Zudem können die Inst<strong>an</strong>zen je<strong>der</strong>zeit passiviert o<strong>der</strong><br />

auch komplett deaktiviert werden, wenn <strong>der</strong> Applikationsserver etwa nach <strong>ein</strong>er Lastspitze<br />

entscheidet, dass nun wie<strong>der</strong> weniger Inst<strong>an</strong>zen ausreichen. Dies führt dazu, dass k<strong>ein</strong>e<br />

<strong>an</strong><strong>fr</strong>agespezischen Daten in <strong>der</strong> Be<strong>an</strong>-Implementierungsklasse vorgehalten werden dürfen:<br />

Alle für <strong>ein</strong>e business method relev<strong>an</strong>te Parameter müssen vom Client übergeben<br />

werden. Der eigentliche Zust<strong>an</strong>d des Systems für den Benutzer wird auf diese Weise vor<br />

allem durch die Datenhaltungsschicht deniert und zum <strong>an</strong><strong>der</strong>en Teil bei mehrschrittigen<br />

Vorgängen durch die Präsentationsschicht, etwa in Form <strong>der</strong> HTTP-Session bei<br />

webbasierten Applikationen. Die Anwendungsschicht selbst bleibt zust<strong>an</strong>ds<strong>fr</strong>ei.<br />

In bestimmten Situationen k<strong>an</strong>n es allerdings notwendig o<strong>der</strong> ratsam s<strong>ein</strong>, die Geschäftslogik<br />

doch mit <strong>ein</strong>em Zust<strong>an</strong>d auszustatten. Dies ist insbeson<strong>der</strong>e d<strong>an</strong>n <strong>der</strong> Fall, wenn<br />

die <strong>ein</strong>zelnen durch business methods modellierten Geschäftsvorgänge <strong>ein</strong>e starke Abhängigkeit<br />

von<strong>ein</strong><strong>an</strong><strong>der</strong> aufweisen, die über <strong>ein</strong>e folgt nach o<strong>der</strong> gehört zu Beziehung<br />

hinausgehen. In solchen Fällen k<strong>an</strong>n es s<strong>ein</strong>, dass <strong>ein</strong>e Umsetzung mit Stateless Session<br />

Be<strong>an</strong>s zu <strong>ein</strong>er stark aufgeblähten Datenhaltungsschicht führen würde, da in diesem<br />

Fall komplexe Zwischenzustände ebenfalls durch sie verwaltet werden müssen. Hier k<strong>an</strong>n<br />

die Anwendungsschicht mit Stateful Session Be<strong>an</strong>s umgesetzt werden, die nicht den erläuterten<br />

Einschränkungen von Stateless Session Be<strong>an</strong>s unterliegen und damit für den<br />

Entwickler eher POJOs 5 ähneln. Allerdings verleiten Stateful Session Be<strong>an</strong>s aufgrund<br />

dieser erweiterten Möglichkeiten leicht zu <strong>ein</strong>er unsauberer Abgrenzung <strong>der</strong> Schichten<br />

unter<strong>ein</strong><strong>an</strong><strong>der</strong>.<br />

Message Driven Be<strong>an</strong>s<br />

Message Driven Be<strong>an</strong>s, kurz MDBs, basieren auf dem Java Message Service 6 (JMS) und<br />

sind diejenigen EJB-Komponenten die asynchrone Kommunikation durch Messaging ermöglichen.<br />

An<strong>der</strong>s als Entity- und Session Be<strong>an</strong>s verfügen MDBs nicht über Komponenteninterfaces.<br />

Sie bestehen dagegen im Wesentlich aus <strong>ein</strong>er Java-Klasse mit <strong>ein</strong>er<br />

public-Methode onMessage(), die durch den JMS <strong>an</strong>gerufen wird, wenn die MDB <strong>ein</strong>e<br />

Nachricht erhalten soll.<br />

MDBs werden häug zur Anbindung von externen Systemen <strong>ein</strong>gesetzt, insbeson<strong>der</strong>e bei<br />

Legacy-Systemen.<br />

5<br />

Von Martin Fowler geprägter Begri <strong>der</strong> Plain Old Java Objects, also normale Java-Objekte von<br />

höherwertigen Komponenten wie EJBs abgrenzt<br />

6 http://java.sun.com/products/jms/ (Abruf: 16. April 2006<br />

48


4.4. ENTWURFSMUSTER<br />

4.4. Entwurfsmuster<br />

Durch das EJB-Komponenten<strong>fr</strong>amework ist es möglich, vielen wie<strong>der</strong>kehrenden, potenziellen<br />

Problemstellungen bei <strong>der</strong> Entwicklung komplexer Informationssysteme bereits<br />

<strong>fr</strong>ühzeitig auf architektureller Ebene zu begegnen. Allerdings heiÿt <strong>der</strong> Einsatz von<br />

EJB nicht, dass bereits <strong>ein</strong>e gute Architektur vorgegeben wäre. Vielmehr müssen die gegebenen<br />

Technologien mit Bedacht <strong>ein</strong>gesetzt werden, so dass wirklich die gewünschte gute<br />

Softwarequalität dabei herauskommt. Dabei haben sich für den EJB-Bereich eigene Entwurfsmuster<br />

herauskristallisiert musterartige Verfahrensweise die zu guten Ergebnissen<br />

führen und sich bereits mehrfach in <strong>der</strong> Praxis bewährt haben.<br />

Zwei solcher Muster werden nun exemplarisch vorgestellt: Das Session-Façade-Muster und<br />

Data-Tr<strong>an</strong>sfer-Object (DTO-) Muster.<br />

4.4.1. Session-Façade<br />

Nach dem Session-Façade-Muster werden alle Au<strong>fr</strong>ufe aus <strong>der</strong> Clientschicht <strong>an</strong> <strong>ein</strong>e zentralisierte<br />

Session-Façade gerichtet, siehe Abbildung 4.3. Direkte Zugrie auf Datenhaltungsobjekte<br />

(in <strong>der</strong> Abbildung Entity Be<strong>an</strong>s, es sind hier aber auch <strong>an</strong><strong>der</strong>e Technologien<br />

denkbar) werden nicht zugelassen. Stattdessen werden entsprechende Au<strong>fr</strong>ufe durch die<br />

Session-Façade gekapselt.<br />

Abbildung 4.3.: Session-Façade; Quelle: [Mar02]<br />

Dieses Vorgehen hat zum <strong>ein</strong>en den Vorteil, dass die Session-Façade als klar denierte,<br />

zentralisierte Inst<strong>an</strong>z für die gesamte Clientschicht die Anzahl <strong>der</strong> notwendigen Netzwerkzugrie<br />

minimiert, die nach den Ausführungen unter 4.3.2 teuer sind als ideal wird bei<br />

EJB oft <strong>ein</strong> RMI-IIOP Zugri pro Anwendungsfall <strong>an</strong>gesehen. Zum <strong>an</strong><strong>der</strong>en trennt <strong>ein</strong><br />

solches Vorgehen die Schichten deutlicher von<strong>ein</strong><strong>an</strong><strong>der</strong> ab: Es gibt bei Durchsetzung <strong>ein</strong>er<br />

Session-Façade nur noch genau <strong>ein</strong>e Stelle, <strong>an</strong> die Au<strong>fr</strong>ufe getätigt werden können bzw.<br />

müssen, etwa <strong>an</strong>alog zu <strong>ein</strong>em B<strong>an</strong>kschalter im Vergleich zum Supermarkt.<br />

49


KAPITEL 4. SOFTWAREARCHITEKTUR UND KONZEPTION DER ANWENDUNGSSCHICHT<br />

4.4.2. Data Tr<strong>an</strong>sfer Objects<br />

Es kommt oft vor, dass bestimmte <strong>an</strong>wendungsspezische Daten als Einheit über mindestens<br />

<strong>ein</strong>e Schicht hinweg weitergegeben müssen. In diesen Fällen ist es günstig sog.<br />

Data Tr<strong>an</strong>sfer Objects <strong>ein</strong>zusetzen. Dabei h<strong>an</strong>delt es sich um r<strong>ein</strong>e Datenhaltungsklassen<br />

ohne jede Geschäftslogik. In Java werden DTOs typischerweise als JavaBe<strong>an</strong>s implementiert,<br />

sind serialisierbar und verfügen nicht zu verwechseln mit Geschäftslogik über<br />

in <strong>der</strong> objektorientierten Programmierung übliche Operationen etwa zum Vergleich, zur<br />

Gleichheit, zur Duplizierung und <strong>der</strong>gleichen mehr.<br />

Gegenüber <strong>der</strong> Bereitsstellung <strong>der</strong> benötigten Datenfel<strong>der</strong> <strong>ein</strong>es DTOs per <strong>ein</strong>zelnem Methodenau<strong>fr</strong>uf<br />

hat das DTO-Muster wie auch das Session-Façade-Muster den Vorteil des<br />

geringen Netzwerkoverheads.<br />

4.5. Fazit und Ausblick<br />

In J2EE-Systemen basiert die Anwendungsschicht in <strong>der</strong> Regel auf Enterprise JavaBe<strong>an</strong>s<br />

Technologie. Dazu existieren für den Datenzugri (Entity Be<strong>an</strong>s) für die Geschäftslogik<br />

(Session Be<strong>an</strong>s) und die <strong>an</strong>synchrone Anbindung externer Systeme jeweils eigene Subtypen,<br />

die jeweils kurz vorgestellt wurden. Das J2EE-Applikationsmodell verfügt damit<br />

sowohl über geeignete Werkzeuge, den hohen Anfor<strong>der</strong>ungen <strong>an</strong> mo<strong>der</strong>ne Informationssystemen<br />

bereits auf architektureller Ebene gerecht zu werden, als auch über Unterstützung<br />

bei konkreten Problemstellungen bei <strong>der</strong> Ausentwicklung <strong>der</strong> Komponenten durch die<br />

Middleware.<br />

Um Problemen bei <strong>der</strong> Entwicklung <strong>der</strong> Anwendungsschicht mit EJBs von vornher<strong>ein</strong><br />

vorzubeugen und so <strong>ein</strong>e gute Architektur zu erhalten und beizubehalten sind speziell auf<br />

die EJB-Technologie ausgelegte Entwurfsmuster hil<strong>fr</strong>eich. Zwei davon konnten im Kontext<br />

dieser Arbeit vorgestellt werden. Für weitere sei auf [Mar02] 7 verwiesen.<br />

Die J2EE-Technologien <strong>der</strong> Anwendungsschicht unterliegen <strong>ein</strong>er steten Weiterentwicklung.<br />

In <strong>der</strong> kommenden EJB-Version 3.0 etwa wurden zahlreiche tiefgreifende Än<strong>der</strong>ungen<br />

vorgenommen die gröÿtenteils Probleme mit <strong>der</strong> hier vorgestellten EJB-Version 2.0<br />

bzw. 2.1 aufgreift. So werden etwa die Vielzahl <strong>der</strong> zu pegenden Interfaces ohne die Möglichkeit<br />

von Compile-Zeit Überprüfungen, die nicht vorh<strong>an</strong>denen Testmöglichkeiten ohne<br />

Applikationsserver und die über die Zeit unnötig kompliziert gewordenen Deployment<br />

Deskriptoren in EJB3.0 gezielt adressiert.<br />

7<br />

Frei verfügbar als eBook unter<br />

http://www.theserverside.com/books/wiley/EJBDesignPatterns/index.tss<br />

(Abruf: 16. April 2006)<br />

50


5. Entwurf und Implementierung<br />

von Websystemen<br />

5.1. Einleitung<br />

Das World Wide Web ndet mit jedem Tag in immer mehr Bereichen des alltäglichen Lebens<br />

Einzug. Angef<strong>an</strong>gen von Wirtschaft und Industrie über Bildungs- und Gesundheitswesen<br />

bis hin zu öentlicher Verwaltung und dem Freizeitsektor übt das World Wide Web<br />

kurz Web <strong>ein</strong>en starken Einuss auf unser aller Leben aus [GM01]. Die Hauptursache<br />

für diese Allgegenwärtigkeit liegt in <strong>der</strong> Natur des Web selbst begründet: Komfortabler,<br />

kostengünstiger und <strong>ein</strong>heitlicher Zugri auf global verteilte Informationen, die von je<strong>der</strong>m<strong>an</strong>n<br />

in Form von Webseiten erstellt und weltweit Verfügbar gemacht werden können<br />

[BL96].<br />

Ursprünglich als r<strong>ein</strong>es Informationsmedium konzipiert, wo <strong>ein</strong>e Website als <strong>ein</strong>e Menge<br />

von mehr o<strong>der</strong> weniger logisch zusammenhängen<strong>der</strong> statischer Webseiten mit<strong>ein</strong><strong>an</strong><strong>der</strong><br />

verknüpft durch Verweise verst<strong>an</strong>den wurde, entwickelt sich das Web mit <strong>der</strong> Zeit immer<br />

mehr zu <strong>ein</strong>em Anwendungsmedium. Heutzutage sind mo<strong>der</strong>ne Web-Anwendungen<br />

vollwertige und hoch komplexe Softwaresysteme. Eine aufwendige Präsentation und Aufbearbeitung<br />

von groÿen Mengen <strong>an</strong> Informationen, die Anpassung <strong>an</strong> unterschiedliche<br />

Benutzerbedürfnisse, komplexe Navigationsstrukturen o<strong>der</strong> die Berücksichtigung von beschränkten<br />

Endgeräten, wie H<strong>an</strong>dys o<strong>der</strong> PDAs, stellen nur <strong>ein</strong>ige <strong>der</strong> wachsenden Anfor<strong>der</strong>ungen<br />

<strong>an</strong> mo<strong>der</strong>ne Web-Anwendungen dar.<br />

Auf dem Weg von <strong>ein</strong>fachen dokumentenzentrierten Websites über interaktive und tr<strong>an</strong>saktionale<br />

Web-Anwendungen bis hin zu solchen, die ubiquitäre Informationen nutzen<br />

und somit personalisierte Dienste abhängig von Ort und Zeit für <strong>ein</strong>e Vielzahl von<br />

Endgeräten möglich machen, nimmt auch die Komplexität dieser Web-Anwendungen zu.<br />

Dieser stetig wachsende Anteil <strong>an</strong> Anwendungslogik und Software in Web-Anwendungen<br />

verwischt die Grenze zwischen Web-Anwendungen und traditionellen Softwareprodukten<br />

zunehmens. Einzig <strong>der</strong> Gebrauch von Web-spezischen Technologien und St<strong>an</strong>dards machen<br />

den Unterschied aus. Daher k<strong>an</strong>n <strong>ein</strong>e Web-Anwendung wie folgt deniert werden:<br />

Eine Web-Anwendung ist <strong>ein</strong> Softwaresystem, das auf Spezikationen des<br />

World Wide Web Consortium (W3C) beruht und Web-spezische Ressourcen<br />

wie Inhalte und Dienste bereitstellt, die über <strong>ein</strong>e Benutzerschnittstelle, den<br />

Web-Browser, verwendet werden. [KPRR04]<br />

Bedauerlicherweise ndet bei <strong>der</strong> Entwicklung von Web-Anwendungen kaum methodisches<br />

und prozessorientiertes Vorgehen statt, um <strong>der</strong> wachsenden Komplexität Herr zu<br />

51


KAPITEL 5. ENTWURF UND IMPLEMENTIERUNG VON WEBSYSTEMEN<br />

werden. Vielmehr fühlt m<strong>an</strong> sich <strong>an</strong> die Praktiken <strong>der</strong> Softwareentwicklung <strong>der</strong> 60er Jahre<br />

zurückerinnert, die damals zur Softwarekrise geführt haben. Heutzutage können <strong>ein</strong>fache<br />

Websites mit Hilfe von verschiedenen Werkzeuge, wie z. B. HTML-Editoren, auch<br />

ohne entsprechendes Fachwissen erstellt werden, was zur Folge hat, dass zum <strong>ein</strong>en <strong>der</strong><br />

Einsatz von teureren Fachkräften gescheut und zum <strong>an</strong><strong>der</strong>en dem Layout mehr Gewicht<br />

beigemessen wird als <strong>der</strong> internen Struktur. Die Entwicklung beruht zudem oftmals auf<br />

den Erfahrungen <strong>ein</strong>zelner Entwickler und zeichnet sich häug durch <strong>ein</strong>e unzureichende<br />

Dokumentation von getroenen Entwurfsentscheidungen und Implementierungsdetails<br />

aus. Das alles hat zur Folge, dass die entwickelten Web-Anwendungen nur sehr schwer<br />

<strong>ein</strong>setzbar und wartbar sind. Des Weiteren weisen sie oft erhebliche Qualitätsmängel in<br />

Bezug auf Zuverlässigkeit, Leistungsfähigkeit, Skalierbarkeit und Benutzer<strong>fr</strong>eundlichkeit<br />

des Systems auf.<br />

Es zeigt sich also, dass trotz <strong>der</strong> steigenden Komplexität <strong>der</strong> Web-Anwendungen systematisch<br />

strukturierte Vorgehensweisen und detaillierte Spezikationen bei ihrer Entwicklung<br />

oftmals nicht berücksichtigt werden.<br />

5.2. Web Engineering<br />

Die Disziplin des Web Engineering nimmt sich ähnlich dem Software Engineering nach<br />

<strong>der</strong> Softwarekrise <strong>der</strong> oben gen<strong>an</strong>nten Probleme <strong>an</strong>, um <strong>ein</strong>e erneute Krise zu vermeiden,<br />

die aufgrund <strong>der</strong> Omnipräsenz des Web erheblich höhere Auswirkungen haben<br />

könnte. Wie auch beim Software Engineering üblich betrachtet das Web Engineering den<br />

gesamten Lebenszyklus <strong>ein</strong>er Web-Anwendung, um mittels ingenieurmäÿiger Anwendung<br />

wissenschaftlicher Erkenntnisse, Systeme entwickeln zu können, die korrekt, sicher, schnell<br />

und kostengünstig sind. Eine Denition von Web Engineering k<strong>an</strong>n daher wie folgt aussehen:<br />

Web Engineering ist die Anwendung systematischer und qu<strong>an</strong>tizierbarer Ansätze<br />

(Konzepte, Methoden, Techniken, Werkzeuge), um Anfor<strong>der</strong>ungsbeschreibung,<br />

Entwurf, Implementierung, Test, Betrieb und Wartung qualitativ hochwertiger<br />

Web-Anwendungen kosteneektiv durchführen zu können. Web Engineering<br />

bedeutet auch die wissenschaftliche Disziplin, die sich mit <strong>der</strong> Erforschung<br />

dieser Ansätze beschäftigt. [KPRR04]<br />

Gem<strong>ein</strong>samkeiten zu traditionellen Anwendungen lassen sich nicht von <strong>der</strong> H<strong>an</strong>d weisen.<br />

Dennoch müssen aufgrund <strong>der</strong> speziellen Anfor<strong>der</strong>ungen und Eigenheiten von Web-<br />

Anwendungen viele Konzepte und Methoden aus dem Bereich des Software Engineering<br />

auf diese Beson<strong>der</strong>heiten <strong>an</strong>gepasst, erweitert o<strong>der</strong> gänzlich neu entwickelt werden. Das<br />

Web Engineering k<strong>an</strong>n daher als eigenständiger Zweig des Software Engineering betrachtet<br />

werden.<br />

Die Grundprinzipien des Web Engineering lauten [DLWZ03]:<br />

• Klar denierte Ziele und Anfor<strong>der</strong>ungen<br />

52


5.3. ENTWURF VON WEB-ANWENDUNGEN<br />

• Systematische Entwicklung in Phasen<br />

• Sorgfältige Ausgestaltung dieser Phasen<br />

• Kontinuierliche Überwachung des gesamten Entwicklungsprozesses<br />

Die Einhaltung dieser Prinzipien ermöglicht dabei die Pl<strong>an</strong>barkeit und Wie<strong>der</strong>holbarkeit<br />

des Entwicklungsprozesses, <strong>ein</strong>e kontinuierliche Weiterentwicklung, die Kostenreduktion<br />

und Risikominimierung bei <strong>der</strong> Neuentwicklung und Wartung, <strong>ein</strong>e allgem<strong>ein</strong>e Qualitätssteigerung<br />

sowie die Messbarkeit <strong>der</strong> Qualität von Ergebnissen <strong>der</strong> <strong>ein</strong>zelnen Phasen.<br />

5.3. Entwurf von Web-Anwendungen<br />

Eine wesentliche Phase innerhalb des Web Engineering stellt die Entwurfsphase dar. Sie<br />

schlieÿt sich direkt <strong>an</strong> die Phase <strong>der</strong> Spezikation des Websystems <strong>an</strong>, in <strong>der</strong> die Anfor<strong>der</strong>ungen<br />

<strong>an</strong> das zu erstellende System <strong>an</strong>alysiert werden. Die Grundlegende Aufgabe des<br />

Entwurfs <strong>ein</strong>er Web-Anwendung liegt dabei in <strong>der</strong> Konstruktion <strong>ein</strong>er Systemarchitektur<br />

auf <strong>der</strong> Basis <strong>der</strong> in <strong>der</strong> Anfor<strong>der</strong>ungs<strong>an</strong>alyse ermittelten Anfor<strong>der</strong>ungen. Dabei lassen<br />

sich die folgenden Teilaufgaben identizieren [DLWZ03]:<br />

• Auswahl von konkreten Technologien und Komponenten<br />

• Erstellung von Diagrammen, Schemata und Pseudocodes, die die hard- und softwarebezogenen<br />

Anfor<strong>der</strong>ungen berücksichtigen<br />

• Beschreibung von Struktur und Verhalten <strong>der</strong> <strong>ein</strong>zelnen Systemkomponenten<br />

• Entwurf <strong>der</strong> Benutzungsoberäche und des Navigationsdesigns<br />

• Integration vorh<strong>an</strong>dener Systeme<br />

In den zwei folgenden Unterkapiteln werden alternative Her<strong>an</strong>gehensweisen beschrieben,<br />

die zu <strong>ein</strong>em Websystementwurf führen sollen. Da ist auf <strong>der</strong> <strong>ein</strong>en Seite die modellgetriebene<br />

Top-Down-Entwicklung und die technologiegetriebene Bottom-Up-Entwicklung auf<br />

<strong>der</strong> <strong>an</strong><strong>der</strong>en. Beide sch<strong>ein</strong>en auf den ersten Blick im Wi<strong>der</strong>spruch zu<strong>ein</strong><strong>an</strong><strong>der</strong> zu stehen.<br />

Allerdings ist die Intention <strong>der</strong> technologiegetriebenen Her<strong>an</strong>gehensweise, <strong>der</strong> modellgetriebenen<br />

Vari<strong>an</strong>te <strong>ein</strong>en ergänzenden, sehr exiblen Blickwickel gegenüber zu stellen.<br />

Abgerundet wird dieses Kapitel durch <strong>ein</strong>e Beschreibung möglicher Strategien zur Architekturbildung<br />

von Web-Anwendungen.<br />

5.3.1. Modellgetriebene Top-Down-Entwicklung<br />

Eine <strong>der</strong> eigentlichen Realisierung vorausgehende Modellierung von Systemen wird in ingenieurwissenschaftlichen<br />

Disziplinen mit groÿem Erfolg <strong>an</strong>gewendet, um die Komplexität<br />

des zu modellierenden Systems zu reduzieren. Durch die Dokumentation von Entwurfsentscheidungen<br />

k<strong>an</strong>n das allgem<strong>ein</strong>e Verständnis erheblich gesteigert und durch die abstrakten,<br />

allgem<strong>ein</strong> verständlichen Modelle die Kommunikation innerhalb von Projektteams <br />

53


KAPITEL 5. ENTWURF UND IMPLEMENTIERUNG VON WEBSYSTEMEN<br />

sowie auch zu Auftraggebern und Kunden erleichtert werden. Die Bereitstellung <strong>ein</strong>er<br />

im ausreichenden Maÿe detaillierten Spezikation des zu implementierenden Systems ist<br />

dabei das Hauptziel <strong>der</strong> Modellierung. Als Ergebnis dieses Prozesses entstehen ver<strong>ein</strong>fachende<br />

und möglichst intuitive Modelle, die die relev<strong>an</strong>ten Gesichtspunkte des Systems<br />

verkörpern und für die weiteren Projektphasen her<strong>an</strong>gezogen werden.<br />

In <strong>der</strong> Informatik liegen die Wurzeln <strong>der</strong> Modellierung zum <strong>ein</strong>en im Data Engineering<br />

und zum <strong>an</strong><strong>der</strong>en im Software Engineering. Während im Data Engineering das Hauptaugenmerk<br />

auf <strong>der</strong> Strukturierung von Daten liegt, also die Modellierung von Informations<strong>ein</strong>heiten<br />

und <strong>der</strong>en Beziehungen unter<strong>ein</strong><strong>an</strong><strong>der</strong>, legte das Software Engineering ursprünglich<br />

s<strong>ein</strong>en Fokus auf die operationalen Aspekte <strong>ein</strong>es Systems. Als wohl bek<strong>an</strong>ntestes<br />

Modell aus dem Bereich des Data Engineering ist das Entity-Relationship-Modell<br />

(siehe dazu [Che76]) zu nennen. Erst die objektorientierte Modellierung ver<strong>ein</strong>igte beide<br />

Bereiche, so dass sowohl die Struktur als auch das Verhalten gleichermaÿen berücksichtigt<br />

wurden. Die Modellierungssprache UML (<strong>Uni</strong>ed Modelling L<strong>an</strong>guage) stellt dabei<br />

den Quasi-St<strong>an</strong>dard für die objektorientierte Modellierung dar. Sie unterscheidet verschiede<br />

Diagrammarten, die die <strong>ein</strong>zelnen Ebenen und Beziehungen auf Strukur- und<br />

Verhaltenssicht abbilden (vgl. [Som01]). UML wird häug auch für den Entwurf von<br />

Web-Anwendungen verwendet liefert aber aufgrund von web-spezischen Konzepten<br />

oftmals nicht den gewünschten Erfolg, da es <strong>ein</strong>ige Beson<strong>der</strong>heiten bei <strong>der</strong> Modellierung<br />

von Web-Anwendungen zu berücksichtigen gilt.<br />

Die Grundlagen des Web Engineering können aus den Basiskonzepten von Data und<br />

Software Engineering übernommen werden. Diese gilt es allerdings um <strong>ein</strong>ige Zusätze zu<br />

erweitern, die <strong>ein</strong>e Modellierung <strong>der</strong> web-spezischen Konzepte möglich machen. Webspezische<br />

Konzepte, die in diesem Maÿe nicht in traditioneller Software vorkommen,<br />

sind z. B. die hypertextuellen Verlinkungen, verschiedene Zugrisstrukturen o<strong>der</strong> <strong>ein</strong>e<br />

starke Personalisierung. Die Anfor<strong>der</strong>ungen <strong>an</strong> die Modellierung von Web-Anwendungen<br />

lassen sich wie in Abbildung 5.1 dargestellt in vier Dimensionen glie<strong>der</strong>n. Diese vier Dimensionen<br />

Ebenen, Aspekte, Phasen und Kontextualität sollen nun im folgenden kurz<br />

erläutert werden, wobei auch jeweils <strong>ein</strong>e kurze Abgrenzung zum herkömmlichen Software<br />

Engineering vorgenommen wird (vgl. [KPRR04]).<br />

Abbildung 5.1.: Anfor<strong>der</strong>ungen <strong>an</strong> die Modellierung von Web-Anwendungen [KPRR04]<br />

Die gröÿte Dierenz zwischen Software Engineering und Web Engineering besteht in <strong>der</strong><br />

54


5.3. ENTWURF VON WEB-ANWENDUNGEN<br />

ersten Dimension - den Ebenen. Das Software Engineering beschränkt sich auf die zwei<br />

Ebenen <strong>der</strong> Anwendungslogik und <strong>der</strong> darauf aufsetzenden Benutzungsschnittstelle, wodurch<br />

<strong>ein</strong>e Kapselung des Was und des Wie erreicht wird. Diese zwei Ebenen reichen<br />

bei <strong>der</strong> Modellierung von Web-Anwendungen nicht aus, da sowohl <strong>der</strong> Dokumentencharakter<br />

des Content als auch die nicht-lineare Navigation <strong>ein</strong>bezogen werden muss. Hier<br />

werden im Allgem<strong>ein</strong>en drei Ebenen unterschieden. Die erste Ebene bildet <strong>der</strong> Content,<br />

also die darzustellenden Informationen und die Anwendungslogik. Schwerpunkte auf dieser<br />

Ebene sind Methoden <strong>der</strong> Datenmodellierung und <strong>der</strong> Eliminierung von Redund<strong>an</strong>zen.<br />

Die zweite Ebene, <strong>der</strong> Hypertext, setzt sich mit <strong>der</strong> Glie<strong>der</strong>ung des Content in Knoten<br />

und den Verweisen zwischen diesen Knoten aus<strong>ein</strong><strong>an</strong><strong>der</strong>. Dabei können für <strong>ein</strong>en Content<br />

auch verschiedene Hypertext-Strukturen und Zugrismodelle integriert werden. Auf<br />

diese Weise können <strong>ein</strong>e Personalisierung und die Anfor<strong>der</strong>ungen von unterschiedlicher<br />

Benutzergruppen bzw. <strong>an</strong> verschiedene Endgeräte leichter realisiert werden. Auch können<br />

Informationen auf mehrere Knoten redund<strong>an</strong>t verteilt werden, so dass sie über mehrere<br />

Zugrispfade aundbar sind und <strong>ein</strong>e Navigation ezienter gestaltet werden k<strong>an</strong>n.<br />

Wichtig ist auÿerdem die Verwendung von wie<strong>der</strong>kehrenden und intuitiv nutzbaren Navigationsmustern,<br />

um <strong>ein</strong>e Desorientierung des Benutzers zu vermeiden. Die dritte Ebene,<br />

die Präsentation, hat die Gestaltung <strong>der</strong> Benutzungsoberäche zur Aufgabe. Schwerpunkte<br />

auf dieser Ebene liegen neben <strong>der</strong> Schaung <strong>ein</strong>er <strong>ein</strong>heitlichen Präsentationsstruktur<br />

<strong>der</strong> Seiten auf Aspekten zur Steigerung des Wie<strong>der</strong>erkennungseekts beim Nutzer. Die<br />

Zielsetzungen <strong>der</strong> drei vorgestellten Ebenen sind durchaus unterschiedlich. Dennoch soll<br />

<strong>ein</strong>e Abbildung <strong>der</strong> Ebenen durch explizites Denieren von Abhängigkeiten auf<strong>ein</strong><strong>an</strong><strong>der</strong><br />

möglich s<strong>ein</strong>. Die Vorteile dieser logischen Trennung liegen aber auf <strong>der</strong> H<strong>an</strong>d. Neben <strong>der</strong><br />

Wie<strong>der</strong>verwendung <strong>ein</strong>zelner Ebenen wird <strong>ein</strong>e Modellevolution und <strong>ein</strong>e Reduzierung<br />

von Komplexität erzielt. Ein Austausch und exibler Einsatz <strong>der</strong> verschiedenen Ebenen<br />

ist ebenso möglich. Je nach Intention <strong>der</strong> Web-Anwendung k<strong>an</strong>n die Gewichtung <strong>der</strong> drei<br />

Ebenen <strong>an</strong><strong>der</strong>s aussehen. Gilt es lediglich groÿe Mengen <strong>an</strong> Informationen und Daten per<br />

Web zugänglich zu machen, so wird <strong>der</strong> Fokus auf <strong>der</strong> Modellierung <strong>der</strong> Content- und<br />

Hypertext-Ebenen liegen. An<strong>der</strong>s sieht es bei präsentationslastigen Web-Anwendungen<br />

aus, die ihren Schwerpunkt in <strong>der</strong> Ausgestaltung <strong>der</strong> Präsentationsebene haben werden.<br />

Die zweite Dimension bilden die Aspekte Struktur und Verhalten. Wie auch beim herkömmlichen<br />

Software Engineering zeichnet sich die Struktur durch die Objekte, <strong>der</strong>en<br />

Attribute und ihre Beziehungen unter<strong>ein</strong><strong>an</strong><strong>der</strong> aus und das Verhalten durch die Funktionen<br />

und Prozesse nur mit dem Unterschied, dass sowohl die Struktur als auch das<br />

Verhalten für alle drei Ebenen des Web Engineering festgelegt werden müssen. Inwieweit<br />

letztendlich Anteile <strong>an</strong> Struktur und Verhalten in den <strong>ein</strong>zelnen drei Ebenen berücksichtigt<br />

werden müssen, hängt von <strong>der</strong> Art <strong>der</strong> Web-Anwendung ab. So bedürfen hoch interaktive<br />

Web-Anwendungen sicherlich <strong>ein</strong>en höheren Modellierungs<strong>an</strong>teil im Verhaltensaspekt als<br />

z. B. statische Web-Anwendungen.<br />

Web-Anwendungen durchlaufen wie auch herkömmliche Software während des Entwicklungsprozesses<br />

mehrere Phasen. Diese Phasen stellen die dritte Dimension <strong>der</strong> in<br />

Abbildung 1 dargestellten Anfor<strong>der</strong>ungen dar und glie<strong>der</strong>n sich in Analyse, Entwurf und<br />

Implementierung. Allerdings existiert für die Entwicklung von Web-Anwendungen noch<br />

55


KAPITEL 5. ENTWURF UND IMPLEMENTIERUNG VON WEBSYSTEMEN<br />

k<strong>ein</strong> Konsens über <strong>ein</strong> generelles Vorgehensmodell. Je nach Typ <strong>der</strong> zu erstellenden Web-<br />

Anwendung k<strong>an</strong>n entwe<strong>der</strong> <strong>ein</strong> informationsgetriebenes o<strong>der</strong> <strong>ein</strong> präsentationsgetriebenes<br />

Vorgehen von Vorteil s<strong>ein</strong>. Sogar agiles Vorgehen, was <strong>der</strong> modellbasierten Entwicklung<br />

in gewissem Sinne wi<strong>der</strong>spricht, hat in m<strong>an</strong>chen Fällen s<strong>ein</strong>e Vorzüge, wenn m<strong>an</strong> bedenkt,<br />

dass viele <strong>der</strong> so gen<strong>an</strong>nten Internettechnologien <strong>ein</strong>er stetigen Weiterentwicklung<br />

unterworfen sind und b<strong>ein</strong>ahe täglich neue hinzu kommen. Die modellbasierte Entwicklung<br />

bringt aber zahlreiche Vorteile mit sich, wie <strong>ein</strong>e gute Werkzeugunterstützung, die<br />

Möglichkeit <strong>der</strong> automatischen Generierung von Prototypen und <strong>ein</strong>e Nachhaltigkeit <strong>der</strong><br />

Lösungsidee.<br />

Ergänzend zu den bisher erläuterten drei Dimensionen kommt für das Web Engineering<br />

im Gegensatz zum Software Engineering noch <strong>ein</strong>e vierte Dimension hinzu die Kontextualität.<br />

Sie resultiert aus <strong>der</strong> Omnipräsenz des Web, <strong>der</strong> Vielzahl <strong>an</strong> unterschiedlichen<br />

Endgeräten und dem Wunsch nach Personalisierung. Die Modellierung von Kontextinformationen<br />

wirkt sich auf alle <strong>an</strong><strong>der</strong>en Dimensionen aus, so dass sie als eigene Modellierungsdimension<br />

betrachtet wird (vgl. [KPRR04]).<br />

5.3.2. Technologiegetriebene Bottom-Up-Entwicklung<br />

Das Design von Web-Anwendungen wird heutzutage in hohem Maÿe von den Spezikationen<br />

und Limitationen bestimmter Implementierungs- und Internettechnologien sowie<br />

<strong>der</strong>en Zusammenspiel geprägt. B<strong>ein</strong>ahe täglich sprieÿen neue Technologien aus dem Boden,<br />

die Web-Anwendungen neue und noch ungeahnte Möglichkeiten bieten können. Die<br />

sich daraus ergebenen Anfor<strong>der</strong>ungen gilt es beim Entwurf von Web-Anwendungen, die<br />

am Puls <strong>der</strong> Zeit liegen sollen, von den Entwicklern zu bewältigen. Die stetige Suche nach<br />

neuen Technologien und St<strong>an</strong>dards und <strong>der</strong> Wunsch zu <strong>der</strong>en exiblen Umsetzung in<br />

Web-Anwendungen k<strong>an</strong>n zu häugen tief greifenden Än<strong>der</strong>ungen von Modellen und Vorgehensweisen<br />

führen. Neue Architekturmuster o<strong>der</strong> Implementierungstechnologien sind<br />

k<strong>ein</strong>e Seltenheit, so dass das technologiebewusste Design teilweise im Wi<strong>der</strong>spruch zur<br />

modellbasierten Entwicklung zu stehen sch<strong>ein</strong>t. Allerdings liefern neue Technologien die<br />

in den meisten Fällen als Antwort auf neuartige o<strong>der</strong> steigende Anfor<strong>der</strong>ungen entstehen<br />

oftmals bessere Möglichkeiten <strong>der</strong> Modellierung im Sinne <strong>ein</strong>er Reduktion von Komplexität.<br />

Somit k<strong>an</strong>n das technologiebewusste Design also als Erweiterung <strong>der</strong> beschriebenen<br />

modellgetriebenen Entwicklung in Richtung noch komplexerer und softwarelastigerer<br />

Web-Anwendungen <strong>an</strong>gesehen werden (vgl. [KPRR04]).<br />

Die drei Designwurzeln für Web-Anwendungen liegen im Hypertext- und Informationsdesign<br />

sowie im objektorientierten Softwaredesign. Jede für sich betrachtet, k<strong>an</strong>n k<strong>ein</strong>e<br />

be<strong>fr</strong>iedigende Lösung liefern - es sind spezielle Ansätze für Web-spezisches Design ge<strong>fr</strong>agt.<br />

Allerdings ist das Gebiet noch sehr jung und es bendet sich noch vieles im Fluss,<br />

so dass sich gute und bewährte Methoden, Prozesse, Notationen und Werkzeuge für den<br />

Entwurf erst l<strong>an</strong>gsam durchsetzen müssen. Es k<strong>an</strong>n aber die folgende Vorgehensweise<br />

empfohlen werden.<br />

Die Web-Anwendung sollte zunächst in drei logische Schichten geglie<strong>der</strong>t werden, die d<strong>an</strong>n<br />

jeweils nach demselben Prinzip in zwei Bereiche geteilt werden. Der erste Bereich stellt<br />

56


5.3. ENTWURF VON WEB-ANWENDUNGEN<br />

die Komponenten dar also insbeson<strong>der</strong>e die Knoten <strong>der</strong> Web-Anwendung, wie z. B.<br />

Medien, Softwarekomponenten o<strong>der</strong> Datenb<strong>an</strong>kzugänge. Der zweite Bereich repräsentiert<br />

die Anordnung dieser Komponenten in Geechte. Abbildung 5.2 verdeutlicht nochmals<br />

die sechs entstehenden Teilaufgaben des Designs von Web-Anwendungen.<br />

Abbildung 5.2.: Teilaufgaben des Designs von Web-Anwendungen [KPRR04]<br />

Aus <strong>der</strong> Abbildung geht hervor, dass <strong>ein</strong>e klare Unterscheidung zwischen <strong>der</strong> Präsentation<br />

und Interaktion vorgenommen wird, so dass beide Aspekte jeweils <strong>ein</strong>e separate Schicht<br />

bilden. Diese Unterscheidung hat ihren Ursprung im Model-View-Controller-Konzept, wo<br />

ebenfalls <strong>ein</strong>e logische Trennung zwischen View und Controller vollzogen wird. Entsprechend<br />

stellt die Funktionsschicht das Model dar.<br />

Die Komponenten in <strong>der</strong> Präsentationsschicht repräsentieren die darzustellenden Inhalte<br />

selbst bzw. <strong>der</strong>en Präsentation. Die Geechte in <strong>der</strong> Präsentationsschicht also das Zusammenspiel<br />

aller Knoten, Links und Anker bringen als Teilaufgabe die Präsentation<br />

<strong>der</strong> Navigationssituation mit sich. Wichtig auf dieser Ebene ist die Nutzung von Fachkompetenzen,<br />

da Ästhetik und Selbsterklärbarkeit enorm wichtig für die Akzept<strong>an</strong>z <strong>ein</strong>er<br />

Web-Anwendung sind. Daher empehlt es sich, die Hilfe von Fachleuten, wie Mediendesignern<br />

und Ingenieuren, in Anspruch zu nehmen.<br />

Die Teilaufgaben für Geechte und Komponenten in <strong>der</strong> Schicht <strong>der</strong> Interaktion lassen sich<br />

als Navigation und Dialog bezeichnen. Für die Navigation, also <strong>ein</strong>er geeigneten Führung<br />

des Benutzers durch die Inhalte und Angebote <strong>der</strong> Web-Anwendung, können verschiedene<br />

Ansätze umgesetzt werden. Sie k<strong>an</strong>n z. B. hierarchisch, explorativ o<strong>der</strong> Software-gesteuert<br />

s<strong>ein</strong> und sich dynamisch <strong>an</strong> Benutzer- o<strong>der</strong> Domänenmodellen <strong>an</strong>passen. Der Dialog m<strong>ein</strong>t<br />

dagegen die konkrete Interaktion mit dem Benutzer über z. B. Formulare o<strong>der</strong> Applets.<br />

Zur Umsetzung <strong>der</strong> Aufgaben dieser Schicht bedient m<strong>an</strong> sich am besten <strong>der</strong> Methoden<br />

und Werkzeuge des klassischen Hypertextdesigns.<br />

Abhängig vom Typ <strong>der</strong> Web-Anwendung können die Teilaufgaben für die Funktionsschicht<br />

sehr unterschiedlich ausfallen. Diese Schicht b<strong>ein</strong>haltet den eigentlichen Kern <strong>der</strong> Web-<br />

Anwendung nämlich die Funktionalität. Bei den <strong>ein</strong>fachen statischen Websites aus<br />

<strong>der</strong> Anf<strong>an</strong>gszeit des Web war diese Schicht zwar kaum von Bedeutung. Allerdings än<strong>der</strong>te<br />

sich dieses mit wachsen<strong>der</strong> Komplexität und höherem Software- und Funktionsumf<strong>an</strong>g <strong>der</strong><br />

Web-Anwendungen. Die Komponenten auf dieser Ebene reichen von <strong>ein</strong>fachen Informationssystemen<br />

und Softwaremodulen bis hin zu Web-Komponenten und die Geechte gehen<br />

vom tr<strong>an</strong>saktionsorientierten Workow bis hin zur Orchestrierung von verschiedenen<br />

57


KAPITEL 5. ENTWURF UND IMPLEMENTIERUNG VON WEBSYSTEMEN<br />

Diensten und Web-Services, die hoch personalisierbare Web-Anwendungen ermöglichen.<br />

Modellierungstechniken für diese Schicht ergeben sich aus dem klassischen Informationsund<br />

Softwaredesign (vgl. [KPRR04]).<br />

5.3.3. Strategien zur Architekturbildung<br />

Bei <strong>der</strong> Entwicklung <strong>ein</strong>er Systemarchitektur, wie auch bei <strong>der</strong>en konkreten Umsetzung<br />

während <strong>der</strong> Implementierungsphase, können verschiedene grundlegende Strategien verfolgt<br />

werden. Die vier grundsätzlichen Vorgehensweisen lauten Top-down, Bottom-up,<br />

Hardest-rst und Trial-<strong>an</strong>d-error und werden <strong>ein</strong><strong>an</strong><strong>der</strong> in Abbildung 5.3 schematisch gegenübergestellt.<br />

Abbildung 5.3.: Vorgehensweisen beim Architekturentwurf [DLWZ03]<br />

Die beiden wichtigsten Ansätze sind dabei <strong>der</strong> Top-down- und <strong>der</strong> Bottom-up-Ansatz.<br />

Allerdings schlieÿen sich die vier im folgenden beschriebenen Vorgehensweisen nicht gegenseitig<br />

aus, son<strong>der</strong>n können sich sogar ergänzen.<br />

Bei <strong>der</strong> Top-down-Strategie ndet <strong>ein</strong>e schrittweise Spezialisierung statt. Es wird mit <strong>ein</strong>er<br />

Gesamtsicht auf das System begonnen, ohne jedoch sofort alle Einzelheiten zu spezizieren.<br />

Von dieser Gesamtsicht aus beginnend, wird das System d<strong>an</strong>n sukzessive verf<strong>ein</strong>ert<br />

bis es komplett entworfen ist und alle zunächst nicht berücksichtigten Details speziziert<br />

sind. Dieses Vorgehen bietet sich insbeson<strong>der</strong>e für die modellgetriebene Entwicklung <strong>an</strong>.<br />

Die Bottom-Up-Strategie verfährt komplementär hier ndet <strong>ein</strong>e schrittweise Generalisierung<br />

statt. Angef<strong>an</strong>gen mit dem Entwurf <strong>ein</strong>zelner Teilfunktionen werden diese nach<br />

58


5.4. TECHNOLOGIEN UND STANDARDS DER IMPLEMENTIERUNG<br />

und nach zu <strong>ein</strong>em Gesamtsystem zusammengesetzt. Dieses Vorgehen bietet sich beson<strong>der</strong>s<br />

beim komponentenbasierten Entwurf <strong>an</strong> o<strong>der</strong> zur Zusammenstellung verschiedener<br />

Web-Services. So können <strong>ein</strong>zelne Komponenten o<strong>der</strong> Web-Services zu <strong>ein</strong>em gröÿeren<br />

Gesamtsystem zusammengebaut werden. Problematisch bei dieser Strategie ist, dass <strong>ein</strong><br />

lauähiges Gesamtsystem erst am Ende verfügbar ist.<br />

Stellt sich vor dem Entwurf o<strong>der</strong> vor <strong>der</strong> Implementierung heraus, dass <strong>ein</strong>ige Komponenten<br />

des zu erstellenden Systems komplexer und somit schwieriger umzusetzen sind als<br />

<strong>an</strong><strong>der</strong>e, so k<strong>an</strong>n nach <strong>der</strong> Hardest-rst-Strategie verfahren werden. Eine Zuerstbeh<strong>an</strong>dlung<br />

<strong>der</strong> verm<strong>ein</strong>tlich schwereren Best<strong>an</strong>dteile k<strong>an</strong>n d<strong>an</strong>n Rückschlüsse über die Systemausprägung<br />

und Machbarkeit insgesamt erlauben. So k<strong>an</strong>n <strong>fr</strong>ühzeitig entsprechend reagiert werden<br />

und <strong>der</strong> Projektpl<strong>an</strong> ggf. <strong>an</strong>gepasst werden.<br />

Hat m<strong>an</strong> es mit vielen neuen Technologien und St<strong>an</strong>dards zu tun, so dass noch k<strong>ein</strong>e<br />

ausreichenden Kenntnisse über <strong>der</strong>en Tauglichkeit und Integrationsmöglichkeit zur Verfügung<br />

stehen, so macht durchaus auch <strong>ein</strong>e chaotisch wirkende Trial-<strong>an</strong>d-error-Strategie<br />

Sinn. Es bleibt gerade beim Entwurf von Web-Anwendungen oft nichts <strong>an</strong><strong>der</strong>es übrig, als<br />

durch <strong>ein</strong>e wilde Experimentierphase Möglichkeiten und Potenziale neuartiger Technologien<br />

auszuloten.<br />

5.4. Technologien und St<strong>an</strong>dards <strong>der</strong> Implementierung<br />

Im Anschluss <strong>an</strong> die Phase des Entwurfs folgt die eigentliche Implementierung <strong>der</strong> Web-<br />

Anwendung. Sie k<strong>an</strong>n deniert werden als die Umsetzung <strong>der</strong> Entwurfsergebnisse in <strong>ein</strong><br />

programmierbares, auf spezieller Hardware abarbeitbares Websystem und vollzieht sich<br />

in den Phasen <strong>der</strong> Kodierung, des Tests, <strong>der</strong> Integration und <strong>der</strong> Installation [DLWZ03].<br />

Mit entscheidend für den Erfolg <strong>ein</strong>er Web-Anwendung ist dabei die Auswahl <strong>der</strong> <strong>ein</strong>zusetzenden<br />

(Implementierungs-) Technologien. Um <strong>ein</strong>e Technologie sinnvoll <strong>ein</strong>setzen<br />

zu können, ist es wichtig, ihre Einsatzmöglichkeiten und Grenzen sowie ihre Vor- und<br />

Nachteile kurz ihre Charakteristika zu kennen. Wie bereits erwähnt, h<strong>an</strong>delt es sich<br />

bei mo<strong>der</strong>nen Web-Anwendungen um hoch komplexe Systeme, die <strong>ein</strong>e Vielzahl <strong>an</strong> unterschiedlichen<br />

Technologien verwenden. Diese sind zum Teil stark mit<strong>ein</strong><strong>an</strong><strong>der</strong> verzahnt,<br />

so dass z. B. Architekturentscheidungen auch tief greifende Technologievorgaben nach<br />

sich ziehen können und umgekehrt. Von diesem Blickwinkel betrachtet, bedarf es also <strong>ein</strong>es<br />

umfassenden Technologieverständnisses, das über die Technologien <strong>an</strong> sich hinausgeht<br />

und auch <strong>der</strong>en Zusammenspiel berücksichtigt und Architekturdesigns in Betracht zieht<br />

[KPRR04].<br />

Gegenüber dem herkömmlichen Software Engineering zeichnen sich die Implementierungstechnologien<br />

des Web Engineering durch die Beson<strong>der</strong>heit aus, dass Web-St<strong>an</strong>dards verwendet<br />

werden. Die Technologien des Web können grob in clientseitige, serverseitige und<br />

dokumentenspezische Technologien klassiziert werden. Aufgrund <strong>der</strong> Vielzahl <strong>an</strong> verschiedenen<br />

Technologien und des sehr begrenzten Rahmens dieser Ausarbeitung k<strong>an</strong>n nur<br />

in aller Kürze auf <strong>ein</strong>ige Beispiele <strong>ein</strong>geg<strong>an</strong>gen werden.<br />

Zu den clientseitigen Technologien zählen z. B. Plugins und Helper-Programme. Dabei<br />

h<strong>an</strong>delt es sich um Anwendungen, die die Funktionalität des Browsers insofern erweitern,<br />

59


KAPITEL 5. ENTWURF UND IMPLEMENTIERUNG VON WEBSYSTEMEN<br />

als dass er in die Lage versetzt wird, auch speziellere Medientypen verarbeiten zu können.<br />

Eine Möglichkeit g<strong>an</strong>ze Programme im Browser ausführen zu lassen, stellt die Verwendung<br />

von Java-Applets dar. Das sind in Java geschriebene Programme, die im Browser in<br />

<strong>ein</strong>er so gen<strong>an</strong>nten S<strong>an</strong>dbox ablaufen <strong>ein</strong>em Sicherheitsmodell, das nur kontrollierte<br />

Zugrie auf Systemressourcen erlaubt.<br />

Die serverseitigen Technologien lassen sich in die Bereiche URI H<strong>an</strong>dler und Web-Services<br />

<strong>ein</strong>ordnen. URI H<strong>an</strong>dler verarbeiten am Server <strong>ein</strong>gehende HTTP-Requests und dienen<br />

zur Auslieferung <strong>der</strong> <strong>an</strong>ge<strong>fr</strong>agten Ressourcen. In diesen Bereich fallende Technologien sind<br />

u. a. Server-Side-Includes (SSI), das Common Gateway Interface (CGI), Möglichkeiten des<br />

Server-Side-Scripting, wie ASP, PHP o<strong>der</strong> Cold Fusion, genauso wie Servlets, Java Server<br />

Pages (JSP) o<strong>der</strong> ASP.NET. Web-Services dagegen sind Softwarekomponenten, die Funktionalität<br />

über denierte Schnittstellen zur Verfügung stellen. Die Grundlage dafür bilden<br />

die St<strong>an</strong>dards SOAP (Simple Object Access Protocol), WSDL (Web Service Description<br />

L<strong>an</strong>guage) und UDDI (<strong>Uni</strong>versal Description, Discovery, <strong>an</strong>d Integration). SOAP dient<br />

dabei zur plattformunabhängigen Kommunikation, die Beschreibung <strong>der</strong> Funktionalität<br />

<strong>ein</strong>es Dienstes erfolgt über WSDL und das Publizieren von Web-Services ist über den<br />

UDDI-St<strong>an</strong>dard möglich.<br />

Die Auswahl <strong>an</strong> dokumentenspezischen Technologien und St<strong>an</strong>dards ist nahezu grenzenlos<br />

und wächst stetig weiter. Die meisten dieser St<strong>an</strong>dards werden vom World Wide<br />

Web Consortium (W3C) [W3C] entwickelt und gepegt und basieren auf XML (eXtensible<br />

Markup L<strong>an</strong>guage). Neben St<strong>an</strong>dards zur Denition neuer XML-basierter Dokumententypen<br />

(XML-Schema) und zur <strong>ein</strong>fachen Tr<strong>an</strong>sformation von <strong>ein</strong>em st<strong>an</strong>dardisierten<br />

Dokumententyp in <strong>ein</strong>en <strong>an</strong><strong>der</strong>en (XSLT: eXtensible Stylesheet L<strong>an</strong>guage Tr<strong>an</strong>sformations)<br />

können dort auch St<strong>an</strong>dards zur Erweiterung und Ver<strong>ein</strong>heitlichung von Style-Sheet-<br />

Anwendungen (XSL: eXtensible Stylesheet L<strong>an</strong>guage) o<strong>der</strong> zum Traversieren <strong>ein</strong>es XML-<br />

Dokuments (XPath: XML Path L<strong>an</strong>guage) gefunden werden. Selbst zweidimensionale, interaktive<br />

Graken können in XML beschrieben werden (SVG: Scalable Vector Graphics),<br />

genauso wie g<strong>an</strong>ze Präsentation dynamisch und individuell zusammengestellt geh<strong>an</strong>dhabt<br />

werden können (SMIL: Synchronized Multimedia Integration L<strong>an</strong>guage). Nicht<br />

zuletzt können logische, sem<strong>an</strong>tische Beziehungen zwischen Ressourcen deniert werden<br />

(RDF: Resource Description Framework). Eine vollständige Auistung aller aktuellen<br />

W3C Recommendations und Working Drafts ist hier zu nden: http://www.w3.org/TR/.<br />

5.5. Fazit<br />

Das Bewussts<strong>ein</strong> für <strong>ein</strong> methodisches, modellgetriebenes Vorgehen bei <strong>der</strong> Entwicklung<br />

von hoch komplexen Web-Anwendungen ist noch nicht in dem Maÿe gereift, wie m<strong>an</strong> es<br />

sich wünschen würde. Methoden und Notationssprachen zur Modellierung von Websystemen<br />

haben sich bisher noch nicht dauerhaft durchsetzen können. Inwieweit sich solche<br />

Methoden etablieren werden, ist dabei nicht zuletzt davon abhängig, wie sich die zugehörige<br />

Werkzeugunterstützung entwickeln wird. Dabei wird beson<strong>der</strong>s wichtig s<strong>ein</strong>, dass<br />

diese Werkzeuge neben <strong>der</strong> Notation auch den Entwicklungsprozess <strong>an</strong> sich systematisch<br />

unterstützen. Trotz aller Berücksichtigung <strong>der</strong> Methodik sollte dennoch immer genügend<br />

60


5.5. FAZIT<br />

Raum für agile Vorgehensweise bleiben, um auf die sich stetig än<strong>der</strong>nden technologischen<br />

Anfor<strong>der</strong>ungen des Web exibel und schnell reagieren zu können. In gleichem Maÿe gilt<br />

es das Zusammenspiel <strong>ein</strong>er modellbasierten Top-down-Modellierung mit <strong>ein</strong>er Bottomup-Integration<br />

vorh<strong>an</strong>dener Dienste und Komponenten zu ermöglichen.<br />

Auch für die zahlreichen Implementierungstechnologien ist es schwer vorauszusagen, welche<br />

sich in <strong>der</strong> Zukunft durchsetzen werden und welche nicht. Die Basistechnologie XML<br />

hat sicherlich zu <strong>ein</strong>er starken Homogenisierung von heterogenen Umgebungen geführt,<br />

aber selbst wie<strong>der</strong> <strong>ein</strong>e Vielzahl neuer St<strong>an</strong>dards, die auf XML basieren, mit sich gebracht.<br />

Nicht alle werden sich durchsetzen können. Letztendlich gilt es auch hier, dass Wissen um<br />

neue Technologien zu nutzen und es in disziplinierte Vorgehensweisen zu integrieren.<br />

61


6. Einführung in Portale und<br />

Portlets<br />

6.1. Was sind Portale und warum nutzt m<strong>an</strong> sie?<br />

6.1.1. Historisches<br />

Portale haben im Internet in den verg<strong>an</strong>genen Jahren immer mehr <strong>an</strong> Bedeutung gewonnen.<br />

M<strong>an</strong> ndet sie inzwischen in sämtlichen Bereichen des Internets und sie dienen den<br />

verschiedensten Zwecken. Begonnen hat die Entwicklung von Portalen bzw. s<strong>ein</strong>en Vorg<br />

ängern im Prinzip bereits in den Anfängen des Internets. Bisl<strong>an</strong>g musste <strong>der</strong> Nutzer den<br />

Weg zu den gewünschten Informationen noch selbst suchen. Mit <strong>der</strong> schnell zunehmenden<br />

Anzahl <strong>an</strong> Seiten (und damit steigen<strong>der</strong> Komplexität) im Internet wurde deutlich, dass<br />

<strong>ein</strong> Bedarf <strong>an</strong> Strukturierung besteht, da <strong>der</strong> Nutzer sonst die gesuchten Inhalte nur noch<br />

schwer nden k<strong>an</strong>n.<br />

Der erste Anbieter, <strong>der</strong> sich dieser Aufgabe widmete, war die Firma Yahoo!. Diese erstellte<br />

<strong>ein</strong>en Katalog, in dem die Seiten je nach Inhalt in Kategorien unterteilt werden konnte.<br />

Dies ermöglichte dem Nutzer <strong>ein</strong>e interessengesteuerte Suche. Solche Kataloge, auch Verzeichnisse<br />

gen<strong>an</strong>nt, ndet m<strong>an</strong> inzwischen bei fast jedem Anbieter von Suchmaschinen.<br />

Später erweiterte Yahoo! s<strong>ein</strong> Angebot um das Portal myYahoo!. Dieses ermöglichte dem<br />

Nutzer <strong>ein</strong>e persönliche Anpassung <strong>der</strong> Seite. Er konnte auswählen, welche Informationen<br />

und Nachrichten er aus welchen Themengebieten präsentiert bekommen möchte. (vgl.<br />

[WCR04])<br />

6.1.2. Portale sind wie <strong>ein</strong> Einkaufszentrum...<br />

Um den Sinn und Zweck von Portalen zu verstehen, k<strong>an</strong>n m<strong>an</strong> diese in gewisser Hinsicht<br />

mit groÿen Einkaufszentren vergleichen. Beide haben <strong>ein</strong>e groÿe Anzahl von Besuchern,<br />

die viele verschiedene Ziele verfolgen. M<strong>an</strong>che suchen Informationen, <strong>an</strong><strong>der</strong>e müssen Aufgaben<br />

erledigen, <strong>an</strong><strong>der</strong>e möchten etwas erwerben. Einkaufszentren bieten <strong>ein</strong>e Fülle von<br />

Geschäften auf kl<strong>ein</strong>em Raum. Damit die Besucher dennoch eektiv (sowohl für den Besucher<br />

als auch für das Einkaufszentrum) in dieser komplexen Struktur <strong>an</strong> ihr Ziel gel<strong>an</strong>gen,<br />

ist <strong>der</strong> Aufbau streng gepl<strong>an</strong>t. Die Besucher werden in gewisser Weise mit Hilfe von Hinweisen<br />

und Wegpl<strong>an</strong>ung durch die Struktur gelenkt. Ähnlich ist es in <strong>ein</strong>em Portal, es<br />

gibt <strong>ein</strong>e Fülle von Informationen und Diensten, die für <strong>ein</strong>en Benutzer klar strukturiert<br />

präsentiert werden, damit sich dieser leicht zurechtnden und diese eektiv nutzen k<strong>an</strong>n.<br />

In <strong>ein</strong>em Einkaufszentrum gibt es aber nicht nur die Kunden. Es gibt auch die Mitar-<br />

62


6.1. WAS SIND PORTALE UND WARUM NUTZT MAN SIE?<br />

beiter. Diese nutzen das Einkaufszentrum auf <strong>ein</strong>e g<strong>an</strong>z <strong>an</strong><strong>der</strong>e Art, sie verkaufen dort<br />

zum Beispiel Waren und nutzen g<strong>an</strong>z <strong>an</strong><strong>der</strong>e Wege in dieser Struktur. Auch <strong>ein</strong> Portal<br />

k<strong>an</strong>n auf diese Art und Weise <strong>ein</strong>e Seite für die Kunden und <strong>ein</strong>e <strong>an</strong><strong>der</strong>e für Mitarbeiter,<br />

beispielsweise des Unternehmens, welches das Portal betreibt, haben.<br />

6.1.3. Was macht Portale aus?<br />

Portale bieten dem Nutzer <strong>ein</strong>e vordenierte, jedoch <strong>an</strong>passbare Sicht auf Informationen.<br />

Ebenso können sie mehr o<strong>der</strong> weniger spezialisierte Dienste <strong>an</strong>bieten, je nachdem, welche<br />

Benutzergruppen <strong>ein</strong> Portal besuchen.<br />

Ein weiteres wichtiges Merkmal ist die Trennung von Benutzergruppen. So ist es möglich,<br />

in <strong>ein</strong>em <strong>ein</strong>zigen Portal verschiedene Inhalte für verschiedene Benutzergruppen <strong>an</strong>zubieten.<br />

Für Unternehmen bedeutet dies zum Beispiel, dass sie <strong>ein</strong>e zentrale Informationsplattform<br />

sowohl für Angestellte als auch für Kunden betreiben können. Es gibt somit also<br />

nur <strong>ein</strong>e Anlaufstelle für beide Seiten und es k<strong>an</strong>n <strong>ein</strong> zentrales Informationsm<strong>an</strong>agement<br />

stattnden.<br />

Als Beispiel könnte m<strong>an</strong> <strong>ein</strong> Portal <strong>ein</strong>es Internetvers<strong>an</strong>dh<strong>an</strong>dels wählen. Das Portal bietet<br />

<strong>ein</strong>erseits dem Kunden die Möglichkeit, die Ware im Online-Shop <strong>ein</strong>zusehen und Bestellungen<br />

aufzugeben. Auf <strong>der</strong> <strong>an</strong><strong>der</strong>en Seite haben die Mitarbeiter des Unternehmens die<br />

Möglichkeit, die Bestellabwicklung direkt im Portal durchzuführen. Sie haben direkten<br />

Zugri auf alle notwendigen Datenbestände und logistischen Informationen. Alle Daten<br />

benden sich also in <strong>ein</strong>em zentralen System. Somit müssen die Daten nicht mehr von<br />

verschiedenen Systemen verarbeitet und zwischen diesen Systemen ausgetauscht werden.<br />

Das ermöglicht beiden Benutzerseiten <strong>ein</strong>en erleichterten Workow sowie weitere ökonomische<br />

Vorteile, wie die Kostenreduktion durch Verwendung weniger Systeme und <strong>ein</strong>er<br />

<strong>ein</strong>facheren Wartung. (vgl. [WCR04], [LM04b])<br />

6.1.4. Theoretisches Konzept<br />

Wenn m<strong>an</strong> Portale nun etwas spezieller in Hinsicht auf die verwendeten Internettechnologien<br />

und das zugrundeliegende Konzept betrachtet, so lässt sich zusammenfassen, dass<br />

Portale webbasierte Anwendungen sind, die <strong>ein</strong>e nutzerorientierte Sicht auf Applikationen<br />

und Content aus verschiedenen Bereichen in <strong>ein</strong>er <strong>ein</strong>heitlichen, <strong>ein</strong>fachen und strukturierten<br />

Oberäche zusammenfassen.<br />

Die verwendeten Informationen können dabei aus den verschiedensten Quellen und Informationssystemen<br />

wie Datenb<strong>an</strong>km<strong>an</strong>agementsystemen (DBMS), Content M<strong>an</strong>agement<br />

Systemen (CMS), dem Dateisystem o<strong>der</strong> Rich Site Summary-Feeds (RSS-Feeds) stammen<br />

und werden für den Portalnutzer je nach Bedarf aufbereitet. Typischerweise verfügen<br />

Portale über <strong>ein</strong> integriertes User-Interface, welches <strong>ein</strong>e individuelle Anpassung <strong>der</strong><br />

Contentpräsentation erlaubt.<br />

Ein in vielen Portalen genutztes Feature ist das sogen<strong>an</strong>nte Single Sign-On, oft <strong>ein</strong>fach<br />

SSO abgekürzt. Single Sign-On bedeutet, dass sich <strong>ein</strong> Portalnutzer nur <strong>ein</strong>mal zu Beginn<br />

(z.B. auf <strong>der</strong> Portalstartseite) am System mit s<strong>ein</strong>er Benutzerkennung und s<strong>ein</strong>em<br />

63


KAPITEL 6. EINFÜHRUNG IN PORTALE UND PORTLETS<br />

Passwort <strong>an</strong>meldet und damit Zugri auf alle für Ihn bestimmten Inhalte und Dienste<br />

innerhalb des Portales erhält, ohne sich bei diesen <strong>ein</strong> weiteres Mal <strong>an</strong>melden zu müssen.<br />

(vgl. [WCR04],[LM04b])<br />

6.2. Technische und ökonomische Vorteile von<br />

Portalen<br />

Portale bieten den Unternehmen auch <strong>ein</strong>e Reihe von technischen und ökonomischen Vorteilen,<br />

die sie für <strong>ein</strong>en Einsatz interess<strong>an</strong>t machen. Einige Beispiele:<br />

• Der Einsatz <strong>ein</strong>es zentralen Systems sowohl für Kunden als auch für Mitarbeiter<br />

ermöglicht <strong>ein</strong>e <strong>ein</strong>fachere Wartung. Wenn Mitarbeiter etwa Applikationen über das<br />

Portal nutzen, so ist es nicht mehr notwendig, diese auf jedem Client in <strong>ein</strong>em<br />

Firmennetzwerk zu installieren.<br />

• Den meisten Mitarbeitern wird die Bedienung <strong>ein</strong>es Browsers und das Navigieren<br />

auf Internetseiten bereits bek<strong>an</strong>nt s<strong>ein</strong>. Somit entstehen geringere Trainingskosten<br />

für neue bzw. umgesteigende Mitarbeiter.<br />

• Wenn die Mitarbeiter die Struktur und die Bedienbarkeit <strong>ein</strong>es Portals erlernt haben,<br />

so wird es ihnen mit groÿer Wahrsch<strong>ein</strong>lichkeit leichter fallen, neue Applikationen<br />

o<strong>der</strong> neue Contentbereiche im Portal zu nutzen, da die Grundstruktur und <strong>der</strong> Aufbau<br />

<strong>ein</strong>es Portales, ähnlich <strong>der</strong> Corporate Identity <strong>ein</strong>er Firmenpräsenz im Internet,<br />

immer ähnlich s<strong>ein</strong> sollten.<br />

• Das gesamte M<strong>an</strong>aging <strong>der</strong> Applikationen k<strong>an</strong>n über das zentrale System geschehen.<br />

Die Verwaltung und Updates von Software müssen also nicht auf den <strong>ein</strong>zelnen<br />

verbundenden Clients stattnden, was nicht nur <strong>ein</strong>e enorme Zeitersparnis, son<strong>der</strong>n<br />

auch die Qualität <strong>der</strong> Software erhöht (es ist sichergestellt, dass die Software immer<br />

auf dem aktuellen St<strong>an</strong>d ist und k<strong>ein</strong>e veraltete genutzt wird).<br />

• Portale bieten zudem <strong>ein</strong>e gröÿere Flexibilität gegenüber <strong>an</strong><strong>der</strong>en Systemen. So sind<br />

die verwendeten Technologien meist Betriebssystem-unabhängig und haben nur relativ<br />

geringe Systemvoraussetzungen.<br />

64


6.2. TECHNISCHE UND ÖKONOMISCHE VORTEILE VON PORTALEN<br />

Abbildung 6.1.: Klassisches IT-System und dessen Abhängigkeiten (Abb. aus [WCR04])<br />

Abbildung 1 zeigt <strong>ein</strong> klassisches IT-System <strong>ein</strong>es Unternehmens und die Abhängigkeiten<br />

<strong>der</strong> Clients von den Applikationen des Unternehmens. Je<strong>der</strong> Client muss dabei eigentständig<br />

für die Anmeldung <strong>an</strong> <strong>der</strong> Applikation sorgen und hat für verschiedene Arbeitsschritte<br />

verschiedene Anlaufstellen. M<strong>an</strong> k<strong>an</strong>n erahnen, dass dieses Prinzip mit wachsen<strong>der</strong> Clientzahl<br />

zu <strong>ein</strong>er sehr komplexen und schwer zu verwaltenden Struktur <strong>an</strong>wachsen k<strong>an</strong>n, die<br />

auch <strong>ein</strong>e erhebliche Netzwerkbelastung mit sich bringen k<strong>an</strong>n. (Bei Nutzung von Applikationen,<br />

die über <strong>ein</strong> Netzwerk mit<strong>ein</strong><strong>an</strong><strong>der</strong> o<strong>der</strong> etwa mit <strong>ein</strong>em DBMS kommunizieren.)<br />

Abbildung 6.2.: IT-Struktur unter Verwendung <strong>ein</strong>es Portals (aus [WCR04])<br />

Abbildung 2 zeigt <strong>ein</strong>e IT-Struktur unter Verwendung <strong>ein</strong>es Portals (bzw. <strong>ein</strong>es Web Application<br />

Servers, auf dem <strong>ein</strong> Portal läuft). Je<strong>der</strong> Client hat somit nur noch diese <strong>ein</strong>e<br />

zentrale Anlaufstelle, <strong>an</strong> <strong>der</strong> er sich mittels Single Sign-On <strong>an</strong>melden k<strong>an</strong>n. Der Aufbau<br />

65


KAPITEL 6. EINFÜHRUNG IN PORTALE UND PORTLETS<br />

ist wesentlich <strong>ein</strong>facher und ermöglicht auch bei groÿer Clientzahl gute Verwaltungsmöglichkeiten.<br />

Eine solche Struktur führt jedoch nicht zw<strong>an</strong>gsläug auch zur Reduktion <strong>der</strong> Netzwerkbelastung.<br />

Es än<strong>der</strong>t sich nicht Menge <strong>der</strong> Kommunikation zwischen Clients und Applikationen,<br />

es än<strong>der</strong>t sich die Art, wie sich diese verteilt. So werden Teile des Netzwerkes<br />

entlastet, während <strong>der</strong> zentrale Server gewissermaÿen <strong>der</strong> Flaschenhals im Netzwerk wird.<br />

M<strong>an</strong> sollte also sicherstellen, dass dieser die notwendigen Ressourcen besitzt.<br />

6.3. Möglichkeiten von und in Portalen<br />

Im Folgenden werden nun <strong>ein</strong>ige Features vorgestellt, wie sie in vielen Portalen zu nden<br />

sind. Es h<strong>an</strong>delt sich dabei nur um <strong>ein</strong>e Auswahl, die Grenze <strong>der</strong> Möglichkeiten beschränkt<br />

sich lediglich auf die Grenzen <strong>der</strong> zugrundeliegenden Technologien.<br />

• Ein Portal ermöglicht <strong>ein</strong>e sehr exible Zustammenstellung von Content. Sie bieten<br />

dem Benutzer <strong>ein</strong>en konsistenten View auf gegebenenfalls aufbereiteten Content aus<br />

den verschiedensten Informationssystemen.<br />

• Ein Portal bietet <strong>an</strong>gepasste Views auf den Content. Es ist nicht nur möglich, verschiedene<br />

Views auf <strong>ein</strong>en Content zu denieren, son<strong>der</strong>n m<strong>an</strong> k<strong>an</strong>n auch Content<br />

mit verschiedenen Rechten versehen (ähnlich wie in Content M<strong>an</strong>agement Systemen).<br />

Dies ermöglicht verschiedene Arten von Informationen innerhalb <strong>ein</strong>es Views.<br />

So könnte z.B. in <strong>ein</strong>em News-Portal zwischen politisch interessierten und Sport<br />

interessierten Endnutzern unterschieden werden, ohne dass jeweils <strong>ein</strong> eigener View<br />

auf den zugrundeliegenden Content verwendet werden muss. In Unternehmenssicht<br />

könnte je<strong>der</strong> Mitarbeiter genu die Informationen erhalten, die er für s<strong>ein</strong>e Arbeit<br />

benötigt.<br />

• Das integrierte User-Interface ermöglicht <strong>ein</strong>e personalisierbare Gestaltung <strong>der</strong> Seiten.<br />

In vielen Portalen ermöglichen vorgegebene Templates dem Nutzer das look<strong>an</strong>d-feel<br />

zu än<strong>der</strong>n. Weiterhin k<strong>an</strong>n <strong>der</strong> Nutzer die Inhalte <strong>an</strong>passen, das heiÿt, er<br />

k<strong>an</strong>n innerhalb s<strong>ein</strong>es Views und s<strong>ein</strong>er Rechte wählen, wo und wie er welche Inhalte<br />

präsentiert bekommen möchte.<br />

• Portale bieten <strong>ein</strong> <strong>ein</strong>heitliches Sicherheitsmodell. Das zuvor erwähnte Single Sign-<br />

On bietet nicht nur Komfort für den Benutzer, son<strong>der</strong>n bringt auch mehr Sicherheit<br />

mit sich. Die Verwaltung von Benutzerdaten muss nur <strong>an</strong> <strong>ein</strong>er Stelle, etwa <strong>ein</strong>er<br />

Benutzerdatenb<strong>an</strong>k stattnden, <strong>an</strong>statt getrennt in jedem System o<strong>der</strong> je<strong>der</strong> Applikation.<br />

Somit können hierfür benötigte Ressourcen eektiver genutzt und in bessere<br />

Sicherheitsmaÿnahmen investiert werden.<br />

• Portale bieten Möglichkeiten zur gem<strong>ein</strong>samen Arbeit, auch Kollaboration gen<strong>an</strong>nt.<br />

Innerhalb des Portales ist es Mitarbeitern möglich, sich über ihre Arbeit auszutauschen<br />

o<strong>der</strong> gem<strong>ein</strong>sam <strong>an</strong> Projekten zu arbeiten. Technische Grundlage hierfür<br />

66


6.3. MÖGLICHKEITEN VON UND IN PORTALEN<br />

bieten Chats, Diskussionsforen, Whiteboards o<strong>der</strong> die Möglichkeit, Kommentare zu<br />

im Portal veröentlichten Artikeln zu verfassen.<br />

• Die zentrale Struktur <strong>ein</strong>es Portales und die Möglichkeit verschiedener Views und<br />

Rechte ermöglichen <strong>ein</strong>e <strong>ein</strong>fache Lokalisation und Internationalisierung <strong>ein</strong>es Portales.<br />

So ist es vergleichsweise <strong>ein</strong>fach, <strong>ein</strong> Portal <strong>an</strong> <strong>ein</strong>e <strong>an</strong><strong>der</strong>e Sprache <strong>an</strong>zupassen,<br />

wenn die funktionellen Texte (Button-Beschriftungen, Links, Überschriften, etc.) in<br />

<strong>ein</strong>er zentralen Sammlung verwaltet werden. Ebenso ist es möglich, lokalen Content<br />

<strong>an</strong>zuzeigen. So könnte m<strong>an</strong> Wetterdaten für den aktuellen St<strong>an</strong>dort des Nutzers<br />

<strong>an</strong>zeigen o<strong>der</strong> auch Informationen nach Abteilungen <strong>ein</strong>es Unternehmens aufteilen.<br />

• Die Integration von Applikationen und die Anbindung <strong>an</strong> mehrere verschiedene Informationssysteme<br />

ermöglichen es, Workows in Portale <strong>ein</strong>zubinden. So können<br />

bestimmte Arbeitsabläufe bereits vorbereitet werden, indem alle für den Nutzer<br />

notwendigen Informationen aus allen Quellen zusammengestellt und ihm optimal<br />

präsentiert werden. Es ist auch denkbar, dass gewisse Schritte auch bereits automatisiert<br />

ablaufen können, um so die Eektivität <strong>der</strong> Arbeit zu erhöhen. Ein Beispiel<br />

für die Integration <strong>ein</strong>es Workows lässt sich wie<strong>der</strong> <strong>an</strong> <strong>ein</strong>er Bestellabwicklung verdeutlichen.<br />

Ein Kunde gibt <strong>ein</strong>e Bestellung im Portal auf. Der Mitarbeiter erhält<br />

zusammen mit <strong>der</strong> Bestellung alle weiteren für den Ablauf wichtigen Informationen,<br />

wie die Anschrift des Kunden, Zahlungsinformationen, aktuellen Lagerbest<strong>an</strong>d <strong>der</strong><br />

bestellten Artikel, Vers<strong>an</strong>dzeiten, -informationen und -status des Logistikpartners<br />

und ähnliches. Somit k<strong>an</strong>n <strong>der</strong> Mitarbeiter schnellstmöglich alle wichtigen Arbeitsschritte<br />

erledigen.<br />

• Das <strong>ein</strong>heitliche Sicherheitsmodell <strong>ein</strong>es Portals stellt auch <strong>ein</strong>e gute Grundlage für<br />

die Intergration von <strong>an</strong><strong>der</strong>en Webservices dar. So können Schnittstellen zu <strong>an</strong><strong>der</strong>en<br />

externen Informationssystemen integriert werden, um dem Nutzer <strong>ein</strong>e noch gröÿere<br />

Vielfalt <strong>an</strong> Informationsquellen zur Verfügung stellen zu können o<strong>der</strong> ihm zu<br />

ermöglichen, Informationen direkt <strong>an</strong> <strong>an</strong><strong>der</strong>e Systeme zu übermitteln.<br />

• Teilweise integrieren Portale auch erweiterte Funktionen, wie beispielsweise gem<strong>ein</strong>same<br />

Terminverwaltung, Projektpl<strong>an</strong>ung, Online-E-Mail-Clienten o<strong>der</strong> Versionsm<strong>an</strong>agement,<br />

wie sie bereits aus <strong>an</strong><strong>der</strong>er Groupware bek<strong>an</strong>nt sind.<br />

• Ein zentrales Portal k<strong>an</strong>n mit den entsprechenden Sicherheitsvorkehrungen auch<br />

von auÿerhalb des Unternehmens genutzt werden. So k<strong>an</strong>n etwa <strong>ein</strong> Mitarbeiter<br />

St<strong>an</strong>dort unabhängig auf alle wichtigen Daten zugreifen, um so auch auÿerhalb<br />

möglichst eektiv arbeiten zu können.<br />

• Obwohl die Strukturierung <strong>ein</strong>es Portales dem Nutzer bei <strong>der</strong> Inhaltsndung helfen<br />

soll, wird oftmals auf die zusätzliche Hilfe <strong>ein</strong>er internen Suchmaschine gesetzt.<br />

Diese Suchmaschine hilft Nutzern, wenn sie nicht genau wissen, wonach o<strong>der</strong> wo<br />

sie suchen sollen o<strong>der</strong> wenn <strong>ein</strong> schneller bereichsübergreifen<strong>der</strong> Überblick über <strong>ein</strong>e<br />

Menge Informationen benötigt wird.<br />

67


KAPITEL 6. EINFÜHRUNG IN PORTALE UND PORTLETS<br />

• Ein häuger zu ndendes Feauture innerhalb von Portalen ist <strong>der</strong> Zugri auf <strong>ein</strong>e<br />

interne Datenb<strong>an</strong>k über <strong>ein</strong> Webinterface. Somit können <strong>ein</strong>fache Tr<strong>an</strong>saktionen und<br />

Ab<strong>fr</strong>agen auf den Datenb<strong>an</strong>kbeständen ausgeführt werden ohne dass <strong>der</strong> Nutzer <strong>ein</strong>e<br />

SQL-Ab<strong>fr</strong>agesprache beherrschen muss.<br />

Abbildung 6.3.: Portal Integration zwischen Clients und Informationssysteme (aus<br />

[WCR04])<br />

Portale bieten nicht nur <strong>ein</strong>e gute Anbindung <strong>an</strong> <strong>ein</strong>e Vielzahl von Informationssystemen,<br />

son<strong>der</strong>n sind auch exibel gegenüber den auftretenden Clients (siehe Abbildung 3).<br />

Mit entsprechenden Schnittstellen, Templates und verwendeten Techniken (beispielsweise<br />

WAP o<strong>der</strong> XHTML mobile) ist etwa auch die Anbindung von mobilen Geräten wie<br />

H<strong>an</strong>dys, PDAs und <strong>an</strong><strong>der</strong>en möglich. (vgl. [WCR04],[LM04b])<br />

68


6.4. WAS IST BEI DER ENTWICKLUNG VON PORTALEN ZU BEACHTEN?<br />

6.4. Was ist bei <strong>der</strong> Entwicklung von Portalen zu<br />

beachten?<br />

Der eektive Einsatz <strong>ein</strong>es Portales hängt davon ab, wie gut die Entwickler das Portal<br />

den Bedürfnissen <strong>der</strong> künftigen Nutzer <strong>an</strong>gepasst haben. Dieser Nutzer-orientierte Ansatz<br />

stellt den Kern <strong>ein</strong>es Portales dar und muss somit konsequent beachtet werden. Es ist sehr<br />

wichtig, die Nutzergruppen gut zu <strong>an</strong>alysieren, um Views entsprechend Ihren Bedürfnissen<br />

zu generieren. Nur wenn die Benutzer sich im Portal zurechtnden und ihre Vorhaben<br />

schnell und möglichst <strong>ein</strong>fach ausführen können, wird es von ihnen <strong>an</strong>genommen werden.<br />

M<strong>an</strong> sollte auch bei <strong>der</strong> optischen Gestaltung des User-Interfaces <strong>an</strong> die Nutzer denken.<br />

Es geht nicht darum, die Funktionsvielfalt so <strong>ein</strong>drucksvoll wie möglich zu präsentieren,<br />

son<strong>der</strong>n darum, dem Nutzer den Aufbau so leicht wie möglich zu verdeutlichen und ihm<br />

<strong>ein</strong>e, im Rahmen des möglichen, intuitive Navigation zu ermöglichen. Gerade mit Inhalten<br />

und Auswahlmöglichkeiten überladene Portalstartseiten wirken eher abschreckend für<br />

<strong>ein</strong>en Nutzer.<br />

Auch wenn das look <strong>an</strong>d feel <strong>ein</strong>es Portales durch den Nutzer zum Beispiel durch Templates<br />

<strong>an</strong>gepasst werden k<strong>an</strong>n, so ist es wichtig, das Default-Template unter Beachtung <strong>der</strong><br />

erwähnten Aspekte möglichst eektiv zu gestalten, denn <strong>ein</strong>e groÿe Anzahl <strong>der</strong> Nutzer<br />

wird dieses vor<strong>ein</strong>gestellte Template beibehalten und k<strong>ein</strong>e eigenen Än<strong>der</strong>ungen <strong>an</strong> <strong>der</strong><br />

Gestaltung vornehmen.<br />

Weiter sind <strong>an</strong><strong>der</strong>e Aspekte zu beachten. So ist es wichtig, die Art des Contents für <strong>ein</strong><br />

Portal zu bestimmen. Nicht je<strong>der</strong> Content ist bereit für die Präsentation in <strong>ein</strong>em Portal<br />

und muss eventuell aufgearbeitet, zum Beispiel formatiert, werden. Zudem muss ermittelt<br />

werden, wer welchen Zugri auf den Content erhalten soll. Diese Aufarbeitung von Content<br />

k<strong>an</strong>n viel Arbeit bereiten und sollte bei <strong>der</strong> Entwicklung <strong>ein</strong>es Portals entsprechend<br />

bedacht werden. Auch die Content-Pege k<strong>an</strong>n sehr zeitaufwendig s<strong>ein</strong>. Um diese zu erleichtern,<br />

sollte m<strong>an</strong> Metadaten (wie zum Beispiel das Dublin Core Metadata Element<br />

Set) nutzen. Jedoch sind diese nicht immer verfügbar, müssten also noch erzeugt werden.<br />

Dies k<strong>an</strong>n wie<strong>der</strong>um sehr hohen Aufw<strong>an</strong>d bedeuten und k<strong>an</strong>n sehr viel Zeit in Anspruch<br />

nehmen. Es ist also wichtig, dass m<strong>an</strong> gut pl<strong>an</strong>t welche und wie viele Inhalte m<strong>an</strong> in <strong>ein</strong>em<br />

Portal zur Verfügung stellen will. Wenn m<strong>an</strong> k<strong>ein</strong>e gute Struktur in den Inhalten besitzt,<br />

um diese eektiv durchsuchen und verwalten zu können, so wird auch <strong>ein</strong> gut konzipiertes<br />

Portal k<strong>ein</strong>en Erfolg haben. (vgl. [LM04b])<br />

6.5. Was sind Portlets?<br />

Portlets sind die individuellen Komponenten, aus denen <strong>ein</strong> Portal besteht. Es h<strong>an</strong>delt<br />

sich bei Portlets im Prinzip um gekapseltes Applikationen, die dem User <strong>ein</strong>en im Portlet<br />

denierten View auf die Daten <strong>ein</strong>es DBMS o<strong>der</strong> CMS liefern und per Knopfdruck<br />

ins Portal <strong>ein</strong>gefügt und wie<strong>der</strong> entfernt werden können. Ein Portlet k<strong>an</strong>n zum Beispiel<br />

Informationen aus <strong>ein</strong>em CMS lesen, diese formatieren und dem Nutzer die Informationen<br />

auf <strong>der</strong> Portalseite präsentieren. Eine <strong>an</strong><strong>der</strong>e Möglichkeit wäre <strong>ein</strong> Portlet, dass dem<br />

69


KAPITEL 6. EINFÜHRUNG IN PORTALE UND PORTLETS<br />

Benutzer erlaubt, auf <strong>ein</strong>e Datenb<strong>an</strong>k zuzugreifen. Es stellt ihm die notwendige Eingabemaske<br />

zur Verfügung, mit <strong>der</strong> <strong>der</strong> Nutzer zum Beispiel <strong>ein</strong>e Bestellung suchen k<strong>an</strong>n.<br />

Wenn <strong>der</strong> Nutzer <strong>ein</strong>e An<strong>fr</strong>age sendet, so ndet die Abarbeitung durch das Portlet auf<br />

Serverseite statt. Die Datenb<strong>an</strong>k würde in diesem Fall das Ergebnis <strong>an</strong> das Portlet liefern,<br />

welches dieses d<strong>an</strong>n dem denierten View entsprechend aufbereitet und dem Nutzer d<strong>an</strong>n<br />

als Inhalt präsentiert.<br />

Portlet-Applikationen sind also eigentlich erweiterte Web-Applikationen und sind auch<br />

ähnlich aufgebaut. Sie bestehen in <strong>der</strong> Regel aus <strong>ein</strong>er konventionellen Web-Applikation,<br />

also Servlets, JSPs, statischem Content, Bil<strong>der</strong>n o<strong>der</strong> ähnlichem, haben <strong>ein</strong>en Web Deployment<br />

Descriptor (web.xml), <strong>ein</strong>en Portal Deployment Descriptor (portlet.xml) und<br />

enthalten die Portlets.<br />

Die Portlet-Applikationen werden serverseitig im Portlet Container, <strong>ein</strong>er Erweiterung<br />

des Serverlet Containers ausgeführt. Der Portlet Container ist dabei nicht eigenständig,<br />

son<strong>der</strong>n setzt auf <strong>ein</strong>em <strong>an</strong><strong>der</strong>en Container, zum Beispiel dem Jakarta Tomcat Container,<br />

auf.<br />

Clients kommunizieren mit dem Portlet über das Request-/Response-Verfahren. Wenn<br />

<strong>ein</strong> Client also <strong>ein</strong>e An<strong>fr</strong>age erhält, so bearbeitet es die An<strong>fr</strong>age gemäÿ s<strong>ein</strong>er Programmierung<br />

und generiert dynamischen Content in Form von sogen<strong>an</strong>nten Fragmenten. Diese<br />

Fragmente werden <strong>an</strong> den Portlet Container übergeben, welcher diese d<strong>an</strong>n in Portal Pages<br />

aggregiert und <strong>an</strong> den Client als statischen Content übergibt. Um <strong>ein</strong>e Möglichst hohe<br />

Wie<strong>der</strong>verwendbarkeit <strong>der</strong> Portlets zu ermöglichen, haben sich die führenden Portalvertreiber<br />

zusammen gesetzt und <strong>ein</strong>en gem<strong>ein</strong>samen St<strong>an</strong>dard für Portlets entwickelt. Das<br />

Ergebnis ist die Java Portlet API o<strong>der</strong> JSR 168. Portlets, die unter Beachtung dieses<br />

St<strong>an</strong>dards entwickelt werden, können ohne gröÿeren Aufw<strong>an</strong>d in jedes Portal integriert<br />

werden, welches diesen St<strong>an</strong>dard unterstützt. (vgl. [WCR04],[LM04b],[Ker04b])<br />

6.6. Fazit<br />

Portale im Internet können <strong>ein</strong>er Vielzahl von Zwecken dienen. Allen ist aber gem<strong>ein</strong>sam,<br />

dass <strong>der</strong> Nutzer s<strong>ein</strong> <strong>an</strong>gestrebtes Ziel möglichst <strong>ein</strong>fach und eektiv erreichen soll. Das<br />

Internet hat <strong>ein</strong>e Gröÿe erreicht, dessen Struktur und Komplexität ohne Hilfe für kaum<br />

jem<strong>an</strong>den durchschaubar sind. Portale bieten hier <strong>ein</strong>e gute Anlaufstelle für Nutzer, um<br />

schnell und eektiv <strong>an</strong> bestimmte Informationen zu gel<strong>an</strong>gen.<br />

In Unternehmen <strong>ein</strong>gesetzt können Portale die Produktivität <strong>der</strong> Mitarbeiter steigern,<br />

Arbeitsabläufe beschleunigen und ver<strong>ein</strong>fachen, die IT-In<strong>fr</strong>astruktur <strong>ein</strong>es Unternehmens<br />

in <strong>ein</strong>em System ver<strong>ein</strong>en und weitere ökonomische Vorteile mit sich bringen.<br />

Schon jetzt nutzen viele Unternehmen, Behörden und <strong>an</strong><strong>der</strong>e Einrichtungen, ob Groÿkonzern<br />

o<strong>der</strong> kl<strong>ein</strong>erer Betrieb Portale um so Ihre Internetpräsenz auszubauen. Es ist<br />

wahrsch<strong>ein</strong>lich, dass dieser Portalboom auch in Zukunft weiter zunehmen wird und die<br />

Entwicklung und die Einsatzmöglichkeiten von Portalen sich weiter ausdehnen wird.<br />

70


7. Java Portlet API JSR168<br />

Diese Ausarbeitung gibt <strong>ein</strong>e Einführung in die Java Portlet Spezikation (JSR 168) und<br />

den WSRP (Web Services für Remote Portlets) St<strong>an</strong>dard. Der Java Specication Request<br />

168 Portlet Specication (JSR 168) [AH03] st<strong>an</strong>dardisiert die Entwicklung von Komponenten<br />

für Portal Server. Der St<strong>an</strong>dard wurde mit <strong>der</strong> Unterstützung namhafter Unternehmen<br />

entworfen und im Oktober 2003 mit <strong>der</strong> Versionsnummer 1.0 verabschiedet. Beteiligt waren<br />

z.B. die Apache Software Foundation, Bo<strong>ein</strong>g, DaimlerChrysler, Hewlett-Packard und<br />

Novell. Mit dem JSR 168 wird <strong>ein</strong> allgem<strong>ein</strong>es Portlet API deniert, das Möglichkeiten<br />

zur Personalisierung, Präsentation und Sicherheit zur Verfügung stellt. Portlets, die mit<br />

diesem API erstellt wurden, können in jedem st<strong>an</strong>dardkonformen Portal deployt werden.<br />

Im JSR 168 werden folgende Themen beh<strong>an</strong>delt[Mic03]:<br />

1. Der Portlet-Container Contract und Portlet-Lifecycle M<strong>an</strong>agement<br />

2. Die Denition von Fensterzuständen und Portletmodi<br />

3. Die Verwaltung von Portlet-Preferences<br />

4. Benutzerinformationen<br />

5. Packaging und Deployment<br />

6. Sicherheit<br />

7. JSP Tags zur Unterstützung bei <strong>der</strong> Portlet Entwicklung<br />

WSRP (Web Service for Remote Portlets) wurde von OASIS (Org<strong>an</strong>isation for the Adv<strong>an</strong>cement<br />

of Structured Information St<strong>an</strong>dards) entwickelt. WSRP ist <strong>ein</strong> Web-Services-<br />

St<strong>an</strong>dard, <strong>der</strong> die Integration von Remote Content und Applikationen in Portale erlaubt.<br />

7.1. Portlet API<br />

Ein Client interagiert mit <strong>ein</strong>em Portal über das Request/Response-Paradigma. Das Portal<br />

übermittelt die im Request enthaltene Information via Portlet Invoker API <strong>an</strong> den<br />

Portlet-Container, <strong>der</strong> wie<strong>der</strong>um mit <strong>der</strong> spezischen Portlet-Applikation via Portlet API<br />

kommuniziert. Die Portlet-Applikation generiert (dynamischen) Content in Form von so<br />

gen<strong>an</strong>nten Fragmenten, <strong>der</strong> vom Portal entsprechend aggregiert und <strong>an</strong> den Client als<br />

Response übergeben wird [Ker04a, S.34]. Einen Überblick <strong>der</strong> Portal-Architektur gibt<br />

Abbildung 1.<br />

71


KAPITEL 7. JAVA PORTLET API JSR168<br />

Abbildung 7.1.: Überblick <strong>der</strong> Portal-Architektur [Ker04a, S.34]<br />

Alle Portlets müssen die Interfaces Portlet und PortletConfig implementieren. Das<br />

Portlet API enthält die abstrakte Klasse GenericPortlet, welche diese Interfaces schon<br />

implementiert und mit Basisfunktionalitäten ausgestattet ist. Bei <strong>der</strong> Entwicklung von<br />

Portlets erweitert m<strong>an</strong> normalerweise GenericPortlet und überschreibt ggf. Methoden.<br />

7.1.1. Container Contract und Lifecycle<br />

Die Ablaufumgebung von Portlets ist <strong>der</strong> Portlet-Container. Im sogen<strong>an</strong>nten Container<br />

Contract ist festgelegt, dass <strong>der</strong> Portlet-Container bestimmte Methoden zu fest denierten<br />

Zeitpunkten im Lebenszyklus <strong>ein</strong>es Portlets au<strong>fr</strong>ufen muss. Im Portlet Interface sind<br />

vier Lifecycle-Methoden festgelegt, die <strong>der</strong> Entwickler mit Funktionalität ausstatten k<strong>an</strong>n<br />

[Ker04a, S.37-38]:<br />

1. init(PortletConfig config): Diese Methode wird <strong>ein</strong>malig nach Inst<strong>an</strong>tiierung<br />

des Portlets aufgerufen und dient zur Initialisierung sowie zur Bereitstellung von<br />

Ressourcen.<br />

2. processAction(ActionRequest request, ActionResponse response) : Diese Methode<br />

wird bei Ausführung <strong>ein</strong>es sog. Action-Request, <strong>der</strong> vom zugrunde liegenden<br />

Portlet via createActionURL()-Methode im javax.portlet.Ren<strong>der</strong>Response Objekt<br />

initiiert wird, aufgerufen und dient zur Bewältigung <strong>der</strong> folgenden Aufgaben:<br />

• Än<strong>der</strong>ung des Portlet-Mode<br />

• Än<strong>der</strong>ung des Window-State<br />

• Redirect<br />

• Modizierung <strong>der</strong> User-Preferences<br />

72


7.1. PORTLET API<br />

• Setzen von Ren<strong>der</strong>-Parametern, auf die d<strong>an</strong>n in <strong>der</strong> ren<strong>der</strong>(...)-Methode zugegrien<br />

werden k<strong>an</strong>n<br />

3. ren<strong>der</strong>(Ren<strong>der</strong>Request request, Ren<strong>der</strong>Response response): Diese Methode wird<br />

entwe<strong>der</strong> innerhalb <strong>ein</strong>es Action Request nach <strong>der</strong> processAction(...) -Methode,<br />

o<strong>der</strong> aber innerhalb <strong>ein</strong>es Ren<strong>der</strong>-Request direkt aufgerufen. In <strong>der</strong> Methode ndet<br />

die Content-Generierung statt. Dies k<strong>an</strong>n entwe<strong>der</strong> über die Methoden<br />

getPortletOutputStream() und getWriter() des Objektes Ren<strong>der</strong>Response geschehen<br />

o<strong>der</strong> aber via JSP/Servlet-Delegierung.<br />

4. destroy(): Diese Methode wird <strong>ein</strong>malig vor dem Beenden des Portlet aufgerufen<br />

und dient üblicherweise <strong>der</strong> Entfernung von Ressourcen.<br />

7.1.2. Window-State und Portlet-Mode<br />

Im Portlet-Fenster k<strong>an</strong>n m<strong>an</strong> mit Buttons den Window-State des Portlets verän<strong>der</strong>n. Der<br />

Window-State zeigt dem Portlet <strong>an</strong>, wieviel Platz auf <strong>der</strong> Portal-Seite reserviert ist. Das<br />

ermöglicht es dem Portlet s<strong>ein</strong> ren<strong>der</strong>ing <strong>an</strong> den Fensterzust<strong>an</strong>d <strong>an</strong>zupassen. Die folgende<br />

Tabelle zeigt die im Portlet API denierten Fensterzustände [Ric04, S.16].<br />

Window State<br />

NORMAL<br />

MINIMIZED<br />

MAXIMIZED<br />

Beschreibung<br />

Das Portlet muss sich den Platz mit <strong>an</strong><strong>der</strong>en Portlets<br />

teilen<br />

Das Portlet enthält k<strong>ein</strong>en o<strong>der</strong> minimalen Output<br />

Das Portlet teilt sich den Platz nicht mit <strong>an</strong><strong>der</strong>en Portlets<br />

und ist daher in s<strong>ein</strong>em Output nicht beschränkt<br />

Tabelle 7.1.: Im Portlet-API denierte Fensterzustände<br />

Der Fensterzust<strong>an</strong>d k<strong>an</strong>n mit <strong>der</strong> Methode getWindowState() des PortletRequest Interfaces<br />

abge<strong>fr</strong>agt werden.<br />

Ausserdem k<strong>an</strong>n m<strong>an</strong> über Buttons im Hea<strong>der</strong> des Portlets den Portlet-Mode än<strong>der</strong>n. Der<br />

Portlet-Mode informiert das Portlet, welcher Task zu erledigen und welcher Content zu<br />

generieren ist. Die Spezikation deniert die folgenden Portlet-Modes:<br />

• VIEW: Default Mode, in dem das Portlet st<strong>an</strong>dardmässig gestartet wird. Zeigt den<br />

aktuellen Content des Portlets <strong>an</strong> und ermöglicht Interaktion.<br />

• EDIT: In diesem Mode k<strong>an</strong>n <strong>der</strong> Benutzer Eigenschaften des Portlets kongurieren.<br />

Diese PortletPreferences liegen in Key/Value Notation vor und sind vom Portal<br />

persistent zu halten.<br />

• HELP: Hier können Hilf<strong>ein</strong>formationen für den Benutzer hinterlegt werden.<br />

Für jeden Portlet-Mode gibt es <strong>ein</strong>e entsprechende Methode in <strong>der</strong> Klasse GenericPortlet.<br />

In den Methoden doView(), doEdit() und doHelp() wird <strong>der</strong> Content generiert, den<br />

73


KAPITEL 7. JAVA PORTLET API JSR168<br />

das Portlet in dem dazugehörigen Mode <strong>an</strong>zeigen soll. Wenn <strong>ein</strong> Portlet <strong>ein</strong>en Ren<strong>der</strong>-<br />

Request erhält, wird die Methode ren<strong>der</strong>() des Portlet Interfaces aufgerufen. In Klassen,<br />

die von GenericPortlet abgeleitet sind, wird <strong>der</strong> Titel für das Portlet gesetzt und<br />

die doDispatch() Methode aufgerufen. Die Methode doDispatch() überprüft durch den<br />

Fensterzust<strong>an</strong>d (normal, maximized o<strong>der</strong> minimized), ob etwas <strong>an</strong>gezeigt werden soll.<br />

Wenn <strong>der</strong> Fensterzust<strong>an</strong>d nicht minimized ist, wird entsprechend des Portlet-Mode <strong>der</strong><br />

Methodenau<strong>fr</strong>uf <strong>an</strong> doView(), doEdit() o<strong>der</strong> doHelp() weitergeleitet [LM04a, S.15]. Abbildung<br />

2 zeigt <strong>ein</strong>e Portal-Page auf Basis des Portals Liferay.<br />

Abbildung 7.2.: Beispiel <strong>ein</strong>er Portal-Page auf Basis des Portals Liferay [Ker04a, S.36]<br />

7.1.3. Die Verwaltung von Portlet-Preferences<br />

Portlets können Benutzer<strong>ein</strong>stellungen in <strong>ein</strong>em persistenten Speicher ablegen, <strong>der</strong> vom<br />

Portal o<strong>der</strong> Portlet-Container verwaltet wird. Anstatt die Benutzer<strong>ein</strong>stellungen in <strong>ein</strong>er<br />

Datenb<strong>an</strong>k o<strong>der</strong> in Textdateien zu speichern werden die sog. Portlet-Preferences verwendet,<br />

die aus Name-/ Wert-Paaren bestehen. Die Darstellung und das Verhalten <strong>ein</strong>es<br />

Portlets können so <strong>an</strong> verschiedene Benutzer <strong>an</strong>gepasst werden.<br />

Portlets haben bei <strong>der</strong> Verarbeitung <strong>ein</strong>es Requests über das PortletPreferences Interface<br />

Zugri auf ihre Preferences. Das Interface stellt getter- und setter-Methoden für<br />

den Zugri auf und die M<strong>an</strong>ipulation von Preferences zur Verfügung. Die Werte sollten<br />

nur in <strong>der</strong> Methode processAction() verän<strong>der</strong>t werden [AH03, S.57]. Es besteht die<br />

Möglichkeit über den Deployment-Deskriptor Default Werte für die Portlet-Preferences<br />

zu übergeben (Listing 1).<br />

<br />

...<br />

Listing 7.1: Deployment-Deskriptor mit Portlet-Preferences<br />

<br />

<br />

<br />

74


7.1. PORTLET API<br />

PreferredStockSymbols<br />

FOO<br />

XYZ<br />

true<br />

<br />

<br />

quotesFeedURL<br />

http://www.foomarket.com/quotes<br />

<br />

<br />

com.foo.PreferencesValidator<br />

<br />

<br />

<br />

Zur Überprüfung <strong>der</strong> Portlet-Preferences k<strong>an</strong>n <strong>ein</strong>e eigene Klasse implementiert werden.<br />

Dieser PreferencesValidator wird d<strong>an</strong>n vor jedem Speichervorg<strong>an</strong>g vom Portlet-<br />

Container aufgerufen, um die vom Benutzer gemachten Einstellungen zu überprfen (z.B.<br />

ob <strong>ein</strong>e <strong>ein</strong>gegebene Postleitzahl gültig ist).<br />

7.1.4. Benutzerinformationen<br />

Im JSR 168 ist auch <strong>ein</strong> Mech<strong>an</strong>ismus enthalten, mit dem <strong>ein</strong> Portlet auf Benutzerdaten<br />

des Portals zugreifen k<strong>an</strong>n. Dazu sind <strong>ein</strong>e Menge Attribute deniert (z.B. user.name.nickName)<br />

auf die <strong>ein</strong>fach zugegrien werden k<strong>an</strong>n. Die vom Portlet benutzten Attribute müssen im<br />

Deployment-Deskriptor <strong>an</strong>gegeben werden (Listing 2). Für das Mapping zu den Daten<br />

des Portal Servers ist <strong>der</strong> Deployer zuständig.<br />

<br />

<br />

Listing 7.2: Deployment-Deskriptor mit User-Attributes<br />

User Given Name<br />

user.name.given<br />

<br />

<br />

User Last Name<br />

user.name.family<br />

20<br />

<br />

7.1.5. Packaging und Deployment<br />

Eine Portlet-Anwendung besteht aus den Portlet-Classles, <strong>ein</strong>em Web Deployment-Deskriptor<br />

(web.xml) und <strong>ein</strong>em Portlet Deployment-Deskriptor (portlet.xml). Darüber hinaus<br />

75


KAPITEL 7. JAVA PORTLET API JSR168<br />

können noch zusätzliche Bibliotheken (z.B. jar-Files) und Ressourcen (z.B. JSPs) verwendet<br />

werden. Die vorgegebene Verzeichnisstruktur zeigt Abbildung 3. Die Portlet-<br />

Anwendung wird in <strong>ein</strong> WAR-Archiv verpackt und im Portal deployt.<br />

Abbildung 7.3.: Verzeichnisstruktur WAR-Archiv [Eigene Darstellung]<br />

Der portlet.xml Deployment-Deskriptor<br />

In <strong>der</strong> Datei portlet.xml sind die Meta-Informationen deniert, die <strong>der</strong> Portlet-Container<br />

benötigt, um das Portlet zu starten. Der Portlet-Container legt für jede in portlet.xml<br />

<strong>an</strong>gegebene Portlet-Klasse genau <strong>ein</strong> Objekt <strong>an</strong>, das Requests <strong>an</strong> dieses Portlet bearbeitet.<br />

<br />

<br />

Listing 7.3: Deployment-Deskriptor portlet.xml<br />

Steph<strong>an</strong>s 2nd Portlet<br />

Adv<strong>an</strong>cedPortletSK<br />

Adv<strong>an</strong>ced Portlet SK<br />

Adv<strong>an</strong>cedPortletSK<br />

<br />

text/html<br />

VIEW<br />

EDIT<br />

HELP<br />

<br />

<br />

Adv<strong>an</strong>ced Portlet SK<br />

Adv Portlet SK<br />

Adv<strong>an</strong>ced, Portlet<br />

<br />

<br />

<br />

76


7.1. PORTLET API<br />

Der Ausschnitt in Listing 3 zeigt die wichtigsten Elemente <strong>ein</strong>es Portlet Deployment-<br />

Deskriptors. In wird <strong>ein</strong> Name für das Portlet festgelegt und in<br />

werden die Classles <strong>an</strong>gegeben. In wird deniert, welchen Content<br />

das Portlet untersttzt und welche Modes bei genau dieser Art von Content <strong>an</strong>gezeigt<br />

werden sollen. In stehen d<strong>an</strong>n noch Zusatzinformationen, wie z.B. <strong>ein</strong> Default-<br />

Titel [Mic03, S.13].<br />

Der web.xml Deployment-Deskriptor<br />

Da es sich bei Portlets um erweiterte Web-Anwendungen h<strong>an</strong>delt, muss auch <strong>ein</strong> web.xml<br />

Datei <strong>an</strong>gegeben werden. Der Deployment-Deskriptor für Web-Anwendungen ist detailliert<br />

in <strong>der</strong> Servlet Spezikation 2.3 beschrieben. Für <strong>ein</strong> <strong>ein</strong>faches Portlet genügt die<br />

Angabe des Namens <strong>der</strong> Web-Anwendung.<br />

<br />

Listing 7.4: Deployment-Deskriptor web.xml<br />

Adv<strong>an</strong>ced Portlet SK<br />

<br />

7.1.6. Sicherheit<br />

Die Portlet Spezikation enthält <strong>ein</strong>ige Features, die dem Entwickler beim Entwerfen von<br />

sicheren Portlets helfen sollen. Enthält <strong>ein</strong> Portlet z.B. vertrauliche Informationen k<strong>an</strong>n<br />

die Datenbertragung mit HTTPS verschlsselt werden. Ausserdem k<strong>an</strong>n das Portlet auf<br />

Benutzer- und Rolleninformationen zugreifen. Der Portlet-Container muss dem Portlet<br />

mitteilen zu welcher Rolle <strong>ein</strong> Benutzer gehört, <strong>der</strong> auf das Portlet zugreifen will. Dadurch<br />

k<strong>an</strong>n <strong>der</strong> Zugri auf bestimmte Daten nur Benutzern erlaubt werden, die zu <strong>ein</strong>er<br />

festgelegten Rolle gehören. Wie Benutzer o<strong>der</strong> Rollen genau deniert sind wird dabei<br />

nicht durch die Spezikation festgelegt. Das k<strong>an</strong>n z.B. durch <strong>ein</strong>fache Textdateien o<strong>der</strong><br />

über <strong>ein</strong>en Directory-Server erfolgen. Der Portlet-Container kümmert sich nicht um die<br />

Authentizierung <strong>der</strong> Benutzer. Das ist Aufgabe des Portals.<br />

7.1.7. JSP Tags zur Untersttzung bei <strong>der</strong> Portlet Entwicklung<br />

Mit <strong>der</strong> Portlet Tag Library können in <strong>ein</strong>em Portlet enthaltene JSPs direkt auf Portlet<br />

spezische Elemente wie Ren<strong>der</strong>Request und Ren<strong>der</strong>Response zugreifen. Ausserdem<br />

können JSPs damit Funktionalitäten <strong>ein</strong>es Portlets, wie z.B. die Erstellung <strong>ein</strong>er Portlet<br />

URL, erl<strong>an</strong>gen. Je<strong>der</strong> Portlet Container muss <strong>ein</strong>e Implementierung <strong>der</strong> Portlet Tag<br />

Library enthalten [AH03, S. 97].<br />

77


KAPITEL 7. JAVA PORTLET API JSR168<br />

7.2. Web Service for Remote Portlets (WSRP)<br />

Im WSRP St<strong>an</strong>dard ist festgelegt wie <strong>ein</strong> lokales Portal (Konsument) mit <strong>ein</strong>em Portal<br />

auf <strong>ein</strong>em entfernten Server (Produzent) kommunizieren muss, um <strong>ein</strong> Portlet <strong>an</strong>zeigen<br />

zu können, das auf dem entfernten Portalserver installiert ist. Der St<strong>an</strong>dard wurde zwar<br />

zusammen mit dem JSR 168 entwickelt, ist aber Programmiersprachen unabhängig. Mit<br />

dem St<strong>an</strong>dard wird <strong>ein</strong> hohes Mass <strong>an</strong> Interoperabilität erreicht, weil dadurch mit .NET<br />

geschriebene Portlets auf <strong>ein</strong>em Java-Portal <strong>an</strong>gezeigt werden können und umgekehrt. Die<br />

WSRP Spezikation wurde von OASIS (Org<strong>an</strong>isation for the Adv<strong>an</strong>cement of Structured<br />

Information St<strong>an</strong>dards) entworfen und bendet sich zur Zeit in <strong>der</strong> Version 1.0.<br />

Bei WSRP h<strong>an</strong>delt es sich um sogen<strong>an</strong>nte Visual, User-facing Web Services. Auf <strong>ein</strong>e<br />

Portal-Architektur bezogen bedeutet dies, dass es nicht notwendig ist, für <strong>ein</strong>en spezi-<br />

schen Web-Service <strong>ein</strong> spezisches Portlet zu entwickeln, um den Web-Service in das<br />

Portal integrieren zu können. Stattdessen können solche Web-Services, die auf völlig verschiedenen<br />

Architekturen (z.B. J2EE o<strong>der</strong> .NET) basieren können, via generischem Portlet<br />

Proxy dynamisch dem zugrunde liegenden Portal hinzugefügt werden. Ein solcher Portlet<br />

Proxy kommuniziert über fest denierte Interfaces mit dem (Remote) Portlet, welches<br />

den Web-Service wie<strong>der</strong>um kapselt. Ein solches Portlet muss demnach nicht zwingend<br />

auf demselben Rechner wie das Portal installiert s<strong>ein</strong>. Solche (Remote) Portlets sind als<br />

Web-Service auf <strong>ein</strong>em (Remote) Server installiert und via UDDI Directory veröentlicht.<br />

Dadurch können diese Portlets (häug spricht m<strong>an</strong> von WSRP Services) <strong>ein</strong>fach gefunden,<br />

gebunden und letztlich in das Portal integriert werden [Ker04a, S. 36]. Abbildung 4 zeigt<br />

<strong>ein</strong>en Überblick <strong>der</strong> Portal-Architektur bei <strong>der</strong> Verwendung von WSRP.<br />

Abbildung 7.4.: Portal-Architektur bei Verwendung von WSRP [Ker04a, S. 36]<br />

78


7.2. WEB SERVICE FOR REMOTE PORTLETS (WSRP)<br />

Ein nach dem WSRP St<strong>an</strong>dard entwickeltes Portlet k<strong>an</strong>n unabhängig von Content, Benutzer<br />

Informations- o<strong>der</strong> Preferences-Modell auf jedem WSRP konformen Konsumenten<br />

<strong>an</strong>gezeigt werden. WSRP Portlets sind darstellungs- und nicht datenorientiert wie <strong>an</strong><strong>der</strong>e<br />

Web Services. Deshalb muss k<strong>ein</strong> datenorientierter Web- Service benutzt werden, um <strong>an</strong>schliessend<br />

mit dem Ergebnis Content zu generieren. Die WSRP Architektur ermöglicht<br />

das komplette Portlet über <strong>ein</strong>en Web-Service darzustellen, ohne irgendwelche Anwendungslogik<br />

auf dem konsumierenden Portal zu haben. Abbildung 5 zeigt <strong>ein</strong>e typische<br />

WSRP-Architektur mit zwei Produzenten und <strong>ein</strong>em Konsumenten.<br />

Abbildung 7.5.: Typische WSRP-Architektur [Eigene Darstellung]<br />

79


8. Die Portal-Plattform Liferay<br />

Diese Ausarbeitung beschreibt die Portal-Plattform Liferay.<br />

Sie soll im Einzelnen auf die Funktionalitäten und Features des Softwareproduktes Liferay<br />

als Portalplattform zur Entwicklung <strong>ein</strong>es Portalsystems <strong>ein</strong>gehen, sowie technische<br />

Hintergrundinformationen zur Architektur dieses Systems vermitteln.<br />

8.1. Was ist Liferay?<br />

Liferay (o<strong>der</strong> das Liferay Enterprise Portal, kurz:LEP) startete im Jahre 2000 als Projekt<br />

<strong>der</strong> Amerik<strong>an</strong>er Bri<strong>an</strong> Ch<strong>an</strong>, Bry<strong>an</strong> Cheung, Bri<strong>an</strong> Kim und Michael Young mit dem<br />

Ziel non-prot Org<strong>an</strong>isationen <strong>ein</strong>en Open-Source Lösung für ihren Internetauftritt zu<br />

bieten. Mittlerweile hat sich aus diesem Verbund die Firma Liferay LLC gebildet, die<br />

das LEP als <strong>ein</strong>es <strong>der</strong> führenden Enterprise-Lösungen im Bereich J2EE Portalsysteme<br />

weiterentwickelt und vermarktet.<br />

Das Liferay Enterprise Portal selbst steht dabei unter <strong>ein</strong>er Open-Source Lizenz (MIT-<br />

License), womit <strong>der</strong> Sourcecode des Systems <strong>ein</strong>er weltweiten Community <strong>an</strong> Programmieren<br />

und Interessierten zur Weiterentwicklung zur Verfügung steht allerdings bedeutet<br />

das nicht das Liferay LLC s<strong>ein</strong>e eigenen Anpassungen und Optimierungen (beispielsweise<br />

spezielle Anpassungen nach Kundenwünschen) auch wie<strong>der</strong> veröentlichen muss, die<br />

MIT-Lizenz ist <strong>an</strong> dieser Stelle weniger restriktiv wie z.B. die GPL.<br />

Liferay ist <strong>ein</strong>e Portalplattform. Das bedeutet im speziellen das sich auf Basis dieses Systems<br />

individuelle Portallösungen für z.B. Firmenauftritte im Internet o<strong>der</strong> Org<strong>an</strong>isationen<br />

<strong>an</strong><strong>der</strong>er Art (wie in unserem speziellen Fall <strong>ein</strong>e <strong>Uni</strong>versität) entwickeln und betreuen lassen.<br />

Dem Benutzer werden über <strong>ein</strong> Portal vordenierte Inhalte präsentiert, wobei <strong>der</strong><br />

Benutzer (ggf.) in <strong>der</strong> Lage ist spezielle Inhalte auszublenden o<strong>der</strong> vordenierte Dienste<br />

zu nutzen. Das Portalsystem ist dabei im Speziellen in <strong>der</strong> Lage Benutzer in Gruppen zu<br />

klassizieren und <strong>an</strong>gepasste Inhalte zu präsentieren.<br />

Das LEP stellt nun <strong>ein</strong>e Plattform dar auf <strong>der</strong>en Basis m<strong>an</strong> <strong>ein</strong> Portal mit strukturierten<br />

Inhalten erstellen k<strong>an</strong>n. Liferay selbst liefert bereits über 50 solcher Inhalte in Form von<br />

Portlets mit, wobei unter <strong>an</strong><strong>der</strong>em <strong>ein</strong> Content-M<strong>an</strong>agement System, Blogs, Calen<strong>der</strong>, <strong>ein</strong><br />

Shopping-System und vieles mehr bereits vorh<strong>an</strong>den ist. Das LEP unterstützt wichtige<br />

St<strong>an</strong>dards wie z.B. JSR-168 (Portlet-API) o<strong>der</strong> JSR-220 (Hibernate) wodurch die Integration<br />

eigener Inhalte o<strong>der</strong> sogar <strong>fr</strong>em<strong>der</strong> Dienste (nach WSRP-St<strong>an</strong>dard) auf Basis<br />

von Java möglich ist.<br />

80


8.2. FEATURES<br />

8.2. Features<br />

In <strong>der</strong> Honung das das nachher nicht zu sehr nach <strong>ein</strong>em Liferay-Werbeprospekt aussieht<br />

sollen <strong>an</strong> dieser Stelle <strong>ein</strong>ige Features von Liferay vorstellt werden.<br />

8.2.1. Themes<br />

Liferay verfügt bereits st<strong>an</strong>dardmässig über <strong>ein</strong>e groÿe Anzahl <strong>an</strong> Themes, mit denen <strong>der</strong><br />

Benutzer s<strong>ein</strong>e Ansicht auf das Portal personalisieren und <strong>an</strong>passen k<strong>an</strong>n. Desweiteren<br />

k<strong>an</strong>n <strong>der</strong> Benutzer über sogen<strong>an</strong>nte Sub-Themes s<strong>ein</strong> Theme noch weiter verän<strong>der</strong>n, z.B.<br />

die Schriftart <strong>an</strong>passen o<strong>der</strong> neue Farben wählen (vgl Abb. 8.2).<br />

Abbildung 8.1.: Liferay: Themes zur Personalisierung<br />

Abbildung 8.2.: Liferay: Sub-Themes weitere M<strong>an</strong>ipulationen <strong>der</strong> Ansicht<br />

Sämtliche Themes basieren hierbei auf CSS und nutzen St<strong>an</strong>dard DIV-Tags, so das es für<br />

<strong>ein</strong>en Entwickler sehr <strong>ein</strong>fach ist neue Themes zu entwerfen o<strong>der</strong> gegebene Anzupassen.<br />

8.2.2. Personalisierbarkeit<br />

Ein wichtiges Merkmal für Portale ist, neben <strong>der</strong> Anpassung des Views durch z.B. Themes<br />

die Personalisierbarkeit des Portals. Der Benutzer soll die Möglichkeit haben sich s<strong>ein</strong>e<br />

Inhalte z.B. für s<strong>ein</strong>e Startseite in das Portal individuell zusammenzustellen natürlich<br />

81


KAPITEL 8. DIE PORTAL-PLATTFORM LIFERAY<br />

im Rahmen <strong>der</strong> Einschränkungen die <strong>ein</strong> Adminstrator dem Nutzer bzw. s<strong>ein</strong>er Benutzergruppe<br />

<strong>ein</strong>räumt. Da die Inhalte <strong>ein</strong>er Liferay-Portal-Seite alle als (JSR-168 ) Portlet<br />

realisiert sind k<strong>an</strong>n m<strong>an</strong> diese (fast) beliebig positionieren und unter<strong>ein</strong><strong>an</strong><strong>der</strong> austauschen.<br />

Neue Inhalte können ebenso <strong>ein</strong>fach <strong>ein</strong>gefügt werden.<br />

Abbildung 8.3.: Liferay: Portletfunktionen d<strong>an</strong>k AJAX jetzt auch per drag-n-drop<br />

Durch Nutzung aktueller Web-Technologien wie AJAX lassen sich die Inhalte in <strong>der</strong><br />

aktuellen Version des Portalsystems sogar per drag-n-drop m<strong>an</strong>ipulieren.<br />

8.2.3. CMS<br />

Liferay verfügt über <strong>ein</strong> sehr exibles Content-M<strong>an</strong>agement System mit dem es dem<br />

Portalbetreiber wechselnde Inhalte (z.B. News) auf s<strong>ein</strong>en Seiten präsentieren k<strong>an</strong>n. Dieses<br />

System als Portlet unter dem Namen Liferay-Journal integriert verfügt ausserdem<br />

über <strong>ein</strong>e Dokumentenverwaltung (vgl. Abb. 8.4) sowie <strong>ein</strong>e spezialisierte Image Gallery<br />

zur Ablage von Bil<strong>der</strong>n.<br />

Abbildung 8.4.: Liferay: Dokumentennverwaltung als Portlet<br />

82


8.2. FEATURES<br />

Abbildung 8.5.: Liferay: Image Gallery<br />

Da in den meisten Fällen die Content-Pege nicht in Händen <strong>ein</strong>es Web-Entwicklers liegt,<br />

son<strong>der</strong>n <strong>an</strong><strong>der</strong>en Personen, die sich möglicherweise nicht direkt mit HTML-Code beschäftigen<br />

wollen o<strong>der</strong> können steht hier <strong>ein</strong> simpler WYSIWYG-Editor zur Erstellung von<br />

z.B. News o<strong>der</strong> Artikeln direkt im Portal zur Verfügung (Abb. 8.6). Im weiteren können<br />

Artikel auch über XSL-Stylesheets formatiert und aus <strong>an</strong><strong>der</strong>en Quellen importiert werden,<br />

so das sich <strong>ein</strong> Kontakt des Autors zum Portalsystem ggf. komplett vermeiden lässt.<br />

Abbildung 8.6.: Liferay: WYSIWYG Editor<br />

8.2.4. Single-Sign-On<br />

Das LEP bietet bereits <strong>ein</strong>e fertige Schnittstelle zum SSO-System CAS <strong>der</strong> Yale <strong>Uni</strong>versity,<br />

so das für die Integration von Liferay <strong>an</strong> <strong>ein</strong> evtl. bestehendes Softwaresystem k<strong>ein</strong>e<br />

beson<strong>der</strong>en Hürden mehr bestehen. Ausserdem k<strong>an</strong>n Liferay s<strong>ein</strong>e Benutzerdaten über<br />

bestehende, <strong>fr</strong>emde Datenb<strong>an</strong>ken o<strong>der</strong> <strong>ein</strong>en LDAP-Server beziehen, so dass in diesen<br />

Fällen <strong>ein</strong> automatischer Abgleich <strong>der</strong> Benutzerdaten mit dem LEP möglich ist.<br />

Eine Anbindung <strong>an</strong> Microsoft Exch<strong>an</strong>ge ist ebenso schon integriert - weitere Schnittstellen<br />

können Entwickler über <strong>ein</strong>e denierte API nachpegen.<br />

83


KAPITEL 8. DIE PORTAL-PLATTFORM LIFERAY<br />

ASP-Design<br />

Liferay ist von Grund auf darauf ausgelegt in ASP-Umgebungen (ASP: Application<br />

Service Provi<strong>der</strong>) <strong>ein</strong>gesetzt zu werden. Das bedeutet das es möglich ist verschiedene<br />

Inst<strong>an</strong>zen von Liferay auf <strong>ein</strong>em (entsprechend leistungsfähigen) Applikationsserver sowie<br />

Datenb<strong>an</strong>kserver zu hosten, um so z.B. mehrere unterschiedliche Portale gleichzeitig zu<br />

betreiben.<br />

Application Server Agnostic<br />

Liferay ist Application Server Agnostic (unabhängig vom Application-Server).<br />

Das LRP unterstützt <strong>ein</strong>e vielzahl unterschiedlicher Applikationsserver, es läuft z.B. auch<br />

nur mit Servlet-Containern wie Tomcat und Jetty, als auch mit vollen J2EE-Kompatiblen<br />

Servern wie Borl<strong>an</strong>d ES, JBoss+Jetty/Tomcat, JOnAS+Jetty/Tomcat, JRun,<br />

OracleAS, Orion, Pramati, RexIP, Sun JSAS, WebLogic, und WebSphere.<br />

Ein weiterer Vorteil <strong>der</strong> sich hier ergibt ist das das LEP (halt nicht nur durch Java) quasiunabhängig<br />

vom Betriebssystem läuft. Die meisten dieser Application-Server sind bereits<br />

auf unterschiedlich Systeme wie BSD, Linux , Solaris etc. portiert.<br />

8.2.5. Einsatz von Spring<br />

Da Liferays Business-Be<strong>an</strong>s auf das Spring-Framework nutzen k<strong>an</strong>n das LEP auch in nicht-<br />

EJB Umgebungen <strong>ein</strong>gesetzt werden. Spring entscheidet ob <strong>ein</strong>e EJB-Implementierung<br />

o<strong>der</strong> <strong>ein</strong>e St<strong>an</strong>dard POJO Implementierung <strong>der</strong> Business-Logik gewählt wird.<br />

8.2.6. Hibernate<br />

Durch den Einsatz von Hibernate als Datenb<strong>an</strong>k-Abstraktions-Layer ist Liferay im Prinzip<br />

vollkommen Datenb<strong>an</strong>k-Unabhängig.<br />

Hibernate sorgt automatisch für <strong>ein</strong>e persistente Datenhaltung und stellt mit HQL<br />

(Hibernate Querry L<strong>an</strong>guage) <strong>ein</strong>e <strong>ein</strong>heitliche Ab<strong>fr</strong>agesprache zur Datenb<strong>an</strong>k zur Verfügung.<br />

8.2.7. verschiedene Sprachmodule<br />

Liferay unterstützt verschiedene Sprachen (vgl. Abb. 8.7) durch den Einsatz von JSTL<br />

fmt-tags, so dass m<strong>an</strong> Portlets vollkommen Sprach-unabhängig entwickeln k<strong>an</strong>n, und auch<br />

<strong>fr</strong>emdsprachige Portlets mit geringem Aufw<strong>an</strong>d lokalisiert.<br />

84


8.3. TECHNOLOGIE<br />

Abbildung 8.7.: Liferay: Lokalisiertung durch JSTL<br />

8.2.8. Skalierbarkeit<br />

Das LEP k<strong>an</strong>n auf mehreren Servern verteilt installiert werden: wenn m<strong>an</strong> so z.B. die Präsentationsschicht<br />

(Servlet-Container) von EJB-Container und Datenb<strong>an</strong>ksystem trennt.<br />

LEP k<strong>an</strong>n ausserdem, zur Verbesserung <strong>der</strong> Skalierbarkeit mit OSCache <strong>ein</strong>gerichtet werden.<br />

M<strong>an</strong> k<strong>an</strong>n so zusätzlich vertikal skalieren (mehrere Application-Server mit clustered<br />

cache).<br />

8.2.9. Benutzergruppen und Rechtem<strong>an</strong>agement<br />

Das Liferay-Portalsystem unterscheidet verschiedene Benutzergruppen. So ist es z.B. möglich<br />

Portlets zu entwickeln die wissen zu welcher Benutzergruppe sie gehören - z.B. <strong>ein</strong>en<br />

Kalen<strong>der</strong> <strong>der</strong> <strong>ein</strong>en Termin nur Benutzern in <strong>der</strong> selben Gruppe bek<strong>an</strong>ntgibt.<br />

8.3. Technologie<br />

Wie m<strong>an</strong> bereits im vorhergehenden Kapitel erkennen konnte zeigt sich das das LEP <strong>ein</strong>e<br />

Vielzahl <strong>an</strong> unterschiedlichen J2EE Technologien zur Realisierung von echter Plattformunabhängigkeit<br />

<strong>ein</strong>setzt.<br />

Wie so oft zeigt sich hier <strong>ein</strong>e typische Aufteilung in <strong>ein</strong> 3-Schichten Modell:<br />

Anzeige: Struts und Tiles: Realisierung von Model 2 JSP (Servlet/JSP Trennung)<br />

Logik: Spring und EJB: Kapselung <strong>der</strong> Business-Logik<br />

Daten: Hibernate: Abstraktion <strong>der</strong> DB<br />

Da die jeweilige Logik auf Basis dieser Abstraktions-Schichten selbst wie<strong>der</strong> in gewisser<br />

weise unabhängig von <strong>der</strong> <strong>ein</strong>gesetzten Software ist (z.B. bei Hibernate (fast) unabhängig<br />

vor <strong>der</strong> Datenb<strong>an</strong>k) ergibt sich für das LEP <strong>ein</strong>e recht komplexe Deployment Matrix<br />

(Abb. 8.8).<br />

85


KAPITEL 8. DIE PORTAL-PLATTFORM LIFERAY<br />

Abbildung 8.8.: Liferay: Demployment-Matrix<br />

Folglich k<strong>an</strong>n m<strong>an</strong> Liferay auf insgesamt 700 verschiedene Arten installieren.<br />

8.4. Systemarchitektur<br />

Das LEP bietet mehr als nur nur den traditionellen Zugri auf das Portalsystem durch<br />

z.B. den Browser o<strong>der</strong> von <strong>ein</strong>en <strong>ein</strong>em PDA die Business-Logik des Portalsystems k<strong>an</strong>n<br />

auch z.B. über <strong>ein</strong>e spezialisierte API via SOAP o<strong>der</strong> RMI als Web-Dienst zugreifbar<br />

gemacht werden.<br />

Zur Ver<strong>an</strong>schaulichung <strong>der</strong> folgenden Beispiele sei hier die Systemarchitektur von Liferay<br />

aufgeführt (Abb. 8.9).<br />

86


8.4. SYSTEMARCHITEKTUR<br />

Abbildung 8.9.: Liferay: Systemarchitektur<br />

8.4.1. Traditioneller Web-zugri<br />

Im Normalfall werden die Inhalte und Dienste des Portalsystems über <strong>ein</strong>en Browser o<strong>der</strong>,<br />

d<strong>an</strong>n schon etwas exotischer, über <strong>ein</strong> kabelloses Endgerät (z.B. per Mobiltelefon über<br />

WAP) geönet. Dieser Zugri verläuft über das St<strong>an</strong>dard Struts-MainServlet. Struts<br />

sorgt hierbei für <strong>ein</strong>e konsequente Trennung von (Servlet)-Logik und Anzeige: das Servlet<br />

selbst schickt ggf. die Benutzer<strong>ein</strong>gaben weiter <strong>an</strong> die Logik (Business Tier), hält die<br />

Verbindung zu den EJBs und sorgt dafür, dass dem Benutzer <strong>ein</strong>e dem Client entsprechende<br />

Anzeige präsentiert wird (also dass <strong>ein</strong> text-basierter Browser z.B. k<strong>ein</strong>e Graken<br />

geschickt bekommt) (JSP Model 2 Architektur).<br />

Für komplexere Layouts im Browser steht ausserdem Tiles als Template-Engine zur Ver-<br />

87


KAPITEL 8. DIE PORTAL-PLATTFORM LIFERAY<br />

fügung.<br />

Das Servlet greift nun über Spring auf die Business-Logik des Dienstes zu, welche entwe<strong>der</strong><br />

in Form <strong>ein</strong>er Enterprise-Java Be<strong>an</strong> Implementierung o<strong>der</strong> als normales Plain Old<br />

Java Object (POJO) vorliegt.<br />

Zugrie in die Datenhaltung erfolgen d<strong>an</strong>n über Hibernate o<strong>der</strong> aber z.B. über JMS<br />

auch <strong>an</strong><strong>der</strong>e Dienste sind denkbar.<br />

8.4.2. Liferay als Web-Service-Provi<strong>der</strong><br />

Alternativ ist es denkbar, dass m<strong>an</strong> auf die Dienste/Funktionalität des Portalsystems als<br />

Web-Service verfügen möchte o<strong>der</strong> auch muss. Der Zugri auf den Business-Tier erfolgt<br />

in diesem Fall über <strong>ein</strong> spezialisiertes Servlet (Axis-Servlet) mit eigener API, o<strong>der</strong> <strong>ein</strong><br />

getunnelter Zugri durch das zur Verfügung gestellte Tunnel Servlet (Zugri ohne GUI)<br />

o<strong>der</strong> auch direkt via RMI/SOAP, was allerdings im Normalfall nur zu Testzwecken<br />

realisiert wird.<br />

Ein Spezialfall ist hier sicherlich das exportieren g<strong>an</strong>zer Portlets über WSRP.<br />

8.5. Fazit<br />

Liferay ist schon l<strong>an</strong>ge k<strong>ein</strong> <strong>ein</strong>faches Portal mehr es ist zu <strong>ein</strong>em sehr komplexen<br />

Softwaresystem gewachsen. Durch den geschickten Einsatz von unterschiedlichen J2EE-<br />

Technologien ist es gelungen, <strong>ein</strong>e Portalplattform zu erstellen, die plattformunabhängig,<br />

erweiterbar, sehr w<strong>an</strong>dlungsfähig und zudem auch noch <strong>fr</strong>ei ist.<br />

Da Liferay aber fast das gesamte Spektrum aktueller J2EE Java-Technologien in <strong>ein</strong>em<br />

Softwaresystem bündelt, holt m<strong>an</strong> sich aber nicht nur <strong>der</strong>en Vorteile mit ins Haus, son<strong>der</strong>n<br />

ebenso auch <strong>der</strong>en Probleme und Nachteile (z.B. betreend Perform<strong>an</strong>ce). Zum zweiten<br />

zeigt sich beim Entwickeln für diese Plattform sehr schnell, dass m<strong>an</strong> dringend <strong>ein</strong>en<br />

J2EE-Spezialisten benötigt o<strong>der</strong> selbst zu <strong>ein</strong>em werden muss.<br />

88


9. Einführung in digitale<br />

Bibliotheken<br />

9.1. Einleitung<br />

Für digitale Bibliotheken haben Computer und Netzwerke <strong>ein</strong>e fundamentale Bedeutung,<br />

sind aber nur die Technologie. Das Entscheidende <strong>an</strong> ihnen ist das Zusammenspiel von<br />

Menschen, Org<strong>an</strong>isationen und eben diesen Technologien [Arm00]. Dabei gibt es <strong>ein</strong>e<br />

klare Abgrenzung zwischen virtuellen und digitalen Bibliotheken. Während virtuelle Bibliotheken<br />

1 <strong>ein</strong>e sachlich geordnete Sammlung von Links und Volltexten haben, die nicht<br />

ortsgebunden ist, beziehen digitale Bibliotheken neben den digitalen Dokumenten auch alle<br />

Objekte aus <strong>ein</strong>er existierenden Bibliothek mit <strong>ein</strong>. Eine vollständige digitale Bibliothek<br />

hat demnach die Funktionen <strong>ein</strong>er traditionellen Bibliothek, d.h. Sammeln, Auswählen,<br />

Erschlieÿen und Aufbereiten für die Benutzung und Archivierung [Pay]. Dementsprechend<br />

k<strong>an</strong>n <strong>ein</strong>e digitale Bibliothek wie folgt deniert werden:<br />

A digital library is a m<strong>an</strong>aged collection of information, with associated services,<br />

where the information is stored in digital formats <strong>an</strong>d accessible over a<br />

network. [Arm00]<br />

Es ergeben sich hierbei folgende Fragen:<br />

1. Welche Unterschiede und Vorteile haben digitale Bibliotheken im Vergleich zu den<br />

traditionellen?<br />

2. Welche Voraussetzungen, sowohl technisch als auch allgem<strong>ein</strong>, müssen erfüllt werden?<br />

3. Wie benutzen Bibliotheken und Verlage die neuen Technologien?<br />

4. Wie entstehen neue individuelle Bibliotheken ohne den Einuss traditioneller Org<strong>an</strong>isationen?<br />

5. Welche Grundlagen und Konzepte gibt es zur Katalogisierung?<br />

6. Welche weiteren Aspekte müssen berücksichtigt werden?<br />

7. Welche St<strong>an</strong>dards sind in den letzten Jahrzehnten entst<strong>an</strong>den?<br />

Auf all diese Fragen versucht diese Seminarausarbeitung <strong>ein</strong>zugehen, um <strong>ein</strong>en Überblick<br />

über dieses komplexe Thema zu geben. Es können dennoch nicht alle Details aufgezeigt<br />

1<br />

Beispiel: The WWW Virtual Library - http://vlib.org/<br />

89


KAPITEL 9. EINFÜHRUNG IN DIGITALE BIBLIOTHEKEN<br />

werden, da dies den Rahmen <strong>der</strong> Ausarbeitung sprengen würde. Vielmehr ist es empfehlenswert,<br />

sich die fortführenden Texte Aufgaben und Formen digitaler Bibliotheken<br />

(siehe Kapitel 10) und Verteilte und fö<strong>der</strong>ierte digitale Bibliotheken (siehe Kapitel 11)<br />

<strong>an</strong>zuschauen.<br />

9.2. Digitale Bibliotheken<br />

Digitale Bibliotheken b<strong>ein</strong>halten diverse Ansammlungen von Informationen für viele unterschiedliche<br />

Benutzer. Dabei spielt es k<strong>ein</strong>e Rolle, ob diese sehr kl<strong>ein</strong> und nur für spezielle<br />

Themen verfügbar o<strong>der</strong> <strong>ein</strong>e allumfassende, groÿräumige Bibliothek darstellen. Genauso<br />

nebensächlich ist die verwendete Technologie, d. h. welche Computerperipherie o<strong>der</strong> Software<br />

<strong>ein</strong>gesetzt wird. Entscheidend ist nur, dass die Informationen auf Computern org<strong>an</strong>isiert<br />

und über Netzwerke verfügbar und die St<strong>an</strong>dardfunktionen wie Sammeln, Auswählen,<br />

Verfügbar machen und Archivieren vorh<strong>an</strong>den sind.<br />

Trotz neu erfundener Technologien werden sich die Bedürfnisse <strong>der</strong> Benutzer kaum än<strong>der</strong>n,<br />

vielmehr werden sie weiterhin Informationen erstellen und suchen. Deshalb müssen<br />

Informationen auch künftig org<strong>an</strong>isiert, gespeichert und veröentlicht werden. Die ständige<br />

Entwicklung neuer Technologien führt daher zu <strong>ein</strong>er Vielzahl unterschiedlicher Ansammlungen<br />

digitaler Dokumente, die in Zukunft das Verhalten <strong>der</strong> Benutzer fundamental<br />

verän<strong>der</strong>n wird. Diese Verän<strong>der</strong>ungen werden hauptsächlich durch zwei Nutzergruppen <strong>an</strong>getrieben<br />

- zum <strong>ein</strong>en die Verlage, Herausgeber und Bibliothekare, zum <strong>an</strong><strong>der</strong>en durch Informatiker<br />

und Informationswissenschaftler. Während diese Nutzergruppen <strong>an</strong>f<strong>an</strong>gs eher<br />

eigenständig entwickelt haben, entstehen inzwischen zahlreiche Kooperationen, die neue<br />

Technologien verbessern und ver<strong>ein</strong>fachen. Zusätzlich werden durch günstiges Equipment,<br />

<strong>ein</strong>fache Software und das Internet elektronische Informationen für jeden direkt verfügbar.<br />

Auch Autoren brauchen nicht länger Verlage, um ihre Werke zu veröentlichen,son<strong>der</strong>n<br />

können ihre Werke den Lesern direkt zugänglich machen.<br />

Technologien be<strong>ein</strong>ussen auch wirtschaftliche und soziale Aspekte von Informationen und<br />

umgekehrt. Verlage und Bibliotheken haben <strong>ein</strong>e l<strong>an</strong>ge Tradition physikalische Objekte<br />

nicht nur Bücher, son<strong>der</strong>n auch Kartenmaterial, Photographien und <strong>an</strong><strong>der</strong>e Artefakte<br />

zu verwalten und damit zu h<strong>an</strong>deln. Wissenschaftler haben dagegen die Tradition, ihr<br />

Wissen und ihre Informationen <strong>fr</strong>ei mit Kollegen zu teilen, ohne Bezahlung, auch wenn sich<br />

<strong>fr</strong>üher nur wenige die damals sehr teuren Computer und Netzwerke leisten konnten. Aus<br />

diesem Ansatz heraus entst<strong>an</strong>d das uns heute bek<strong>an</strong>nte WWW (WorldWideWeb) [WCd].<br />

Einerseits unterscheiden sich digitale Bibliotheken von traditionellen Bibliotheken stark,<br />

<strong>an</strong><strong>der</strong>erseits versuchen sie diese nachzubilden. So gibt es digitale Bibliotheken, in denen<br />

<strong>der</strong> Benutzer erst bezahlen muss, bevor er die Sammlungen und Dienste nutzen darf. In<br />

<strong>an</strong><strong>der</strong>en Modellen tragen die Produzenten und Autoren die Kosten.<br />

Der fundamentale Grund digitale Bibliotheken zu erschaen, liegt in <strong>der</strong> Honung, Informationen<br />

besser als bisher verbreiten und zur Verfügung stellen zu können. Nichts desto<br />

trotz werden nicht alle gedruckten Dokumente durch elektronische Medien ersetzt, auch<br />

wenn dies technisch und wirtschaftlich machbar wäre. Das Druckerzeugnis spielt in unserer<br />

Gesellschaft <strong>ein</strong>e dominierende Rolle.<br />

90


9.2. DIGITALE BIBLIOTHEKEN<br />

In den folgenden Abschnitten werden <strong>ein</strong>ige Aspekte digitaler Bibliotheken aufgezeigt.<br />

9.2.1. Vor- und Nachteile<br />

Die neuen Technologien bieten den digitalen Bibliotheken erhebliche Vorteile. So bedingt<br />

<strong>der</strong> Besuch <strong>ein</strong>er traditionellen Bibliothek <strong>ein</strong>en mehr o<strong>der</strong> weniger groÿen Aufw<strong>an</strong>d, da<br />

nicht überall gröÿere Bibliotheken vorh<strong>an</strong>den sind. An <strong>Uni</strong>versitäten ist dies meist nicht so<br />

schwierig, jedoch haben die meisten Leute k<strong>ein</strong>e <strong>Uni</strong>versität o<strong>der</strong> Bibliothek in ihrer Nähe.<br />

Auch für Ingenieure und Wissenschaftler ist es problematisch <strong>an</strong> neueste Informationen<br />

zu gel<strong>an</strong>gen. Digitale Bibliotheken bringen dagegen die Informationen zum Nutzer. Dieser<br />

benötigt nur <strong>ein</strong>en PC mit <strong>ein</strong>en Netzwerk- / Internet<strong>an</strong>schluss um überall auf <strong>der</strong> Welt<br />

Zugri auf die digitalen Medien zu haben.<br />

Gedruckte Dokumente sind <strong>an</strong>genehm zu lesen, jedoch k<strong>an</strong>n es sehr schwierig s<strong>ein</strong>, gezielt<br />

bestimmte Informationen zu nden. Meistens ist es <strong>ein</strong> glücklicher Zufall bestimmte<br />

Dokumente in <strong>ein</strong>er traditionellen Bibliothek zu nden. Mit Computersystemen lässt sich<br />

wesentlich schneller und <strong>ein</strong>facher arbeiten. Auch wenn Suchmethoden noch nicht immer<br />

so gut sind, wie es sich viele wünschen, so werden diese Systeme doch stetig verbessert<br />

und erweitert.<br />

Bibliotheken und Archive haben viele Einzelexemplare, die so nur <strong>an</strong> bestimmten St<strong>an</strong>dorten<br />

verfügbar sind. Digitale Bibliotheken könnten diese Informationen überall verfügbar<br />

machen. Das Anfertigen von Kopien selten genutzter Materialien ist nicht nur kostspielig,<br />

son<strong>der</strong>n auch aufwändig. Digitale Kopien lassen sich dagegen <strong>ein</strong>fach erstellen, um so Duplikate<br />

über die g<strong>an</strong>ze Welt verteilt zur Verfügung zu stellen. So wären selbst Raritäten<br />

problemlos nutzbar.<br />

Viele wichtige Dokumente müssen regelmäÿig aktualisiert werden. Gedruckte Materialien<br />

müssen aktualisiert und alte Kopien ersetzt werden. Die digitale Speicherung auf <strong>ein</strong>em<br />

zentralen Rechner k<strong>an</strong>n Dokumente <strong>ein</strong>facher, schneller und billiger aktuell halten. Viele<br />

Bibliotheken installieren immer d<strong>an</strong>n, wenn neue Online-Versionen von Wörterbüchern<br />

und Lexika ersch<strong>ein</strong>en, diese auf den Bibliotheks-PCs.<br />

Digitale Bibliotheken sind nicht nur überall, son<strong>der</strong>n auch rund um die Uhr erreichbar.<br />

Die Studie <strong>ein</strong>er britischen <strong>Uni</strong>versität hat gezeigt, dass über die Hälfte <strong>der</strong> Benutzer<br />

auÿerhalb <strong>der</strong> Önungszeiten auf digitale Sammlungen zugreifen [Arm00]. Entscheidend<br />

ist auch, dass Materialien in Online-Archiven niemals ausgeliehen, falsch <strong>ein</strong>sortiert o<strong>der</strong><br />

gestohlen s<strong>ein</strong> können. Dadurch sind Zugrie auf Dokumente <strong>ein</strong>er Bibliothek von <strong>der</strong><br />

<strong>an</strong><strong>der</strong>en Seite <strong>der</strong> Welt genauso <strong>ein</strong>fach möglich wie Zugrie vor Ort. Dennoch besteht<br />

auch die Möglichkeit, dass Computersysteme o<strong>der</strong> Netzwerke ausfallen. Trotzdem stehen<br />

im Vergleich zu traditionellen Bibliotheken Informationen leichter überall und je<strong>der</strong>zeit<br />

zur Verfügung.<br />

Nicht für alle Informationen ist das Druckmedium die beste Speichermöglichkeit. Eine<br />

Datenb<strong>an</strong>k ist die beste Möglichkeit Um<strong>fr</strong>age-Daten zu speichern, um sie später per<br />

Computer zu <strong>an</strong>alysieren. Auch audio-visuelle Informationen lassen sich am Besten digital<br />

speichern. So können komplett neue Formate entstehen, die nur für den digitalen<br />

Gebrauch sinnvoll sind. Gerade in den letzten Jahren sind in diesem Bereich viele neue<br />

91


KAPITEL 9. EINFÜHRUNG IN DIGITALE BIBLIOTHEKEN<br />

Dienste entst<strong>an</strong>den, die zwar nicht im herkömmlichen Sinn als Bibliothek bezeichnet werden<br />

können, doch auch gezielt Informationen org<strong>an</strong>isiert speichern. Dazu gehören zum<br />

Beispiel GoogleEarth 2 , Flickr 3 und YouTube 4 . Das Potenzial <strong>der</strong> Annäherung zwischen<br />

diesen Diensten und Bibliotheken ist erstaunlich. So werden in den nächsten Jahren noch<br />

viele weitere interess<strong>an</strong>te Dienste und Verknüpfungen mit Bibliotheken entstehen.<br />

Bei all diesen Vorteilen muss aber auch die Wirtschaftlichkeit <strong>ein</strong>er digitalen Bibliothek<br />

betrachtet werden, so dass im nächsten Abschnitt auf die Kosten <strong>ein</strong>geg<strong>an</strong>gen wird.<br />

9.2.2. Kosten<br />

Konventionelle Bibliotheken sind teuer, da sie Gebäude und teilweise mehrere hun<strong>der</strong>t<br />

Mitarbeiter bezahlen müssen. Hinzu kommen noch die Kosten für die Anschaung neuer<br />

Dokumente und Materialien, für die nie genug Geld zur Verfügung steht. Aber auch das<br />

Publizieren ist kostspielig, so dass <strong>ein</strong>ige Verlage für die digitale Version mehr verl<strong>an</strong>gen,<br />

als für das gleiche gedruckte Erzeugnis um Ihre Kosten zu kompensieren. So sind heutzutage<br />

digitale Bibliotheken auch sehr teuer, teilweise sogar teurer, da viele Technologien noch<br />

entwickelt werden müssen. L<strong>an</strong>g<strong>fr</strong>istig bieten digitale Bibliotheken <strong>ein</strong> enormes Einsparpotenzial,<br />

da <strong>ein</strong>erseits die Entwicklungskosten zurückgehen werden und <strong>an</strong><strong>der</strong>erseits viele<br />

Fixkosten <strong>ein</strong>gespart werden können. So werden <strong>an</strong>f<strong>an</strong>gs die Anschaungskosten neuer<br />

digitaler Dokumente noch hoch s<strong>ein</strong>, doch werden kaum weitere Nutzungskosten entstehen.<br />

Dies führt zu <strong>ein</strong>er Umschichtung <strong>der</strong> Fixkosten sowie zu <strong>ein</strong>em besseren Kosten /<br />

Nutzen Verhältnis. Verlage, Herausgeber, Autoren und Bibliotheken werden unter diesem<br />

Druck die wirtschaftlichen Denkweisen verän<strong>der</strong>n müssen, da alte Preisstrukturen, die<br />

unter <strong>an</strong><strong>der</strong>em durch Druckkosten entst<strong>an</strong>den, für elektronische Veröentlichungen nicht<br />

gelten.<br />

Neben den Kosten spielen noch weitere technische und allgem<strong>ein</strong>e Voraussetzungen <strong>ein</strong>e<br />

Rolle, um <strong>ein</strong>e digitale Bibliothek erfolgreich aufzubauen.<br />

9.2.3. Voraussetzungen<br />

Als in den den späten Sechzigern die ersten seriösen Versuche zur Speicherung von Bibliotheksinformationen<br />

auf Computern durchgeführt wurden, gab es <strong>ein</strong>e Menge technischer<br />

Barrieren Speicherplatz war teuer, Netzwerke so gut wie nicht vorh<strong>an</strong>den o<strong>der</strong> sehr<br />

l<strong>an</strong>gsam und das Lesen <strong>an</strong> Bildschirmen war aufgrund niedriger Auösungen und schlechtem<br />

Kontrast un<strong>an</strong>genehm. Erst seit den Neunziger Jahren wurden <strong>ein</strong>e Reihe technischer<br />

Errungenschaften entwickelt, die die letzten fundamentalen Barrieren zum Aufbau <strong>ein</strong>er<br />

digitalen Bibliothek auösten. Einige dieser Entwicklungen sind noch rudimentär und be-<br />

nden sich im Aufbau, jedoch haben die immer günstiger werdenden Computer und das<br />

Internet zu <strong>ein</strong>en schnellen Anstieg von Informationsdiensten geführt.<br />

Elektronischer Speicher wird billiger als Papier<br />

2<br />

3D Satellitenbil<strong>der</strong> - http://earth.google.com/<br />

3<br />

Groÿes <strong>fr</strong>eies Photoarchiv - http://www.flickr.com/<br />

4<br />

Entstehendes <strong>fr</strong>eies Videoarchiv - http://www.youtube.com/<br />

92


9.2. DIGITALE BIBLIOTHEKEN<br />

Groÿe Bibliotheken sind selbst für reiche Org<strong>an</strong>isationen sehr teuer. Für die meisten Bibliotheken<br />

betragen all<strong>ein</strong>e die Kosten für die Gebäude über 25% des Gesamtbudgets.<br />

Steht diesen zusätzliches Geld für neue Gebäude zur Verfügung, so muss dennoch genügend<br />

Freiraum zur Exp<strong>an</strong>sion zur Verfügung stehen. Während die Kosten für neue<br />

Gebäude zur Lagerung von weiteren Büchern voraussichtlich steigen werden, sinken die<br />

Kosten für die elektronische Speicherung jährlich um ca. 30% [Arm00]. So werden in<br />

Zukunft auch groÿe Objekte wie Videos, Bil<strong>der</strong>sammlungen und Audioaufnahmen zunehmens<br />

digital gespeichert werden.<br />

Computer-Bildschirme werden <strong>an</strong>genehmer zu benutzen<br />

Die Qualität <strong>der</strong> Darstellung von Dokumenten am Bildschirm war <strong>an</strong>f<strong>an</strong>gs sehr schlecht,<br />

so dass üblicherweise die Texte zum Lesen auf Papier ausgedruckt wurden. Seitdem die<br />

Auösungen immer gröÿer werden, Schriften speziell für Monitore entwickelt werden und<br />

die Qualität steigt, lesen immer mehr Menschen direkt vom Bildschirm, gerade d<strong>an</strong>n, wenn<br />

bestimmte Dokumente speziell für die Betrachtung am Bildschirm entworfen worden sind<br />

wie zum Beispiel Webseiten. Dieser Trend wird durch immer bessere, billigere und<br />

achere Bildschirme weiter steigen, auch wenn auf l<strong>an</strong>ge Sicht Computer das Buch zum<br />

Lesen nicht ablösen werden.<br />

Schnelle Netzwerke verbreiten sich immer weiter<br />

Seit dem Internet-Boom in den Neunziger Jahren wächst das Internet kontinuierlich. Während<br />

<strong>an</strong>f<strong>an</strong>gs nur groÿe Konzerne und <strong>Uni</strong>versitäten über groÿe Netze verfügten und normale<br />

Menschen sich per Modem ins Internet <strong>ein</strong>wählten, so ist in den letzten Jahren die<br />

Anzahl <strong>an</strong> Hochgeschwindigkeits-Anschlüssen rasend gestiegen. Weltweit stieg die Zahl<br />

<strong>der</strong> ADSL-Anschlüsse von 58 Mio. im Jahr 2003 auf 115 Mio. im Herbst 2005 [WCa].<br />

So ist es heutzutage in den meisten Län<strong>der</strong>n leichter Informationen über das Internet zu<br />

erhalten, als <strong>ein</strong> gedrucktes Buch o<strong>der</strong> Zeitschrift zu erl<strong>an</strong>gen.<br />

Computer sind mobil geworden<br />

Die Verfügbarkeit des Internets <strong>an</strong> immer weiteren St<strong>an</strong>dorten, sei es durch Funknetze,<br />

Internet-Cafes o<strong>der</strong> <strong>an</strong><strong>der</strong>e Internet<strong>an</strong>schlüsse, spielt auch für digitale Bibliotheken <strong>ein</strong>e<br />

wichtige Rolle. D<strong>an</strong>k immer schnelleren und besseren Laptops lassen sich Informationen<br />

überall sammeln und verarbeiten. So k<strong>an</strong>n m<strong>an</strong>, selbst wenn m<strong>an</strong> nicht mit dem Internet<br />

und <strong>ein</strong>er Online-Bibliothek verbunden ist, mit lokal gespeicherten Kopien weiterarbeiten.<br />

Erreichbarkeit ist für digitale Bibliotheken von zentraler Bedeutung. Traditionelle Bibliotheken<br />

sind oft Teil <strong>ein</strong>er Org<strong>an</strong>isation, die teure physikalische Sammlungen nur ihren<br />

Mitglie<strong>der</strong>n zur Verfügung stellen und auch vielen Wissenschaftlern und Ingenieuren steht<br />

oft nur <strong>ein</strong>e kl<strong>ein</strong>e bis gar k<strong>ein</strong>e Bibliotheks<strong>ein</strong>richtung zur Verfügung. Dies erweckte schon<br />

<strong>fr</strong>üh das Interesse des Institute of Electrical <strong>an</strong>d Electronics Engineers (IEEE) 5 am elektronischen<br />

Publizieren.<br />

Ein weiterer Faktor bei <strong>der</strong> Pl<strong>an</strong>ung <strong>ein</strong>er digitalen Bibliothek spielt die <strong>ein</strong>gesetzte Technologie.<br />

So müssen clientseitig neben mo<strong>der</strong>nsten Computern und Programmen auch ältere<br />

Systeme unterstützt werden, um <strong>ein</strong>e höchstmögliche Benutzbarkeit zu gewährleisten.<br />

5 http://www.ieee.org<br />

93


KAPITEL 9. EINFÜHRUNG IN DIGITALE BIBLIOTHEKEN<br />

9.2.4. Grundlegende Konzepte<br />

Inhalte und Metadaten<br />

Digitale Bibliotheken können jede Information speichern, die sich digital abbilden lässt.<br />

Neben den digitalen Versionen von konventionellen Medien, wie z.B. Texte, Bil<strong>der</strong> und<br />

Musik, lassen sich auch digitale Materialien speichern, die k<strong>ein</strong> physikalisches Pend<strong>an</strong>d<br />

haben, wie Daten von wissenschaftlichen Instrumenten, Computerprogramme und Datenb<strong>an</strong>ken.<br />

Entscheidend bei <strong>der</strong> Speicherung ist die Unterscheidung zwischen Daten und Metadaten.<br />

Als Metadaten bezeichnet m<strong>an</strong> allgem<strong>ein</strong> Daten, die Informationen über <strong>an</strong><strong>der</strong>e Daten<br />

enthalten. Diese sind in 3 Kategorien <strong>ein</strong>zuteilen:<br />

• Beschreibende Metadaten, wie z.B. Literatur<strong>an</strong>gaben<br />

• Strukturelle Metadaten über Formate und Strukturen und<br />

• Administrative Metadaten über Zugrisrechte und Genehmigungen<br />

Somit besteht in <strong>der</strong> Regel in <strong>ein</strong>er digitalen Bibliothek <strong>ein</strong> digitales Objekt aus Daten,<br />

Metadaten und <strong>ein</strong>em <strong>ein</strong>deutigen Identikator, welcher wie<strong>der</strong>um selbst <strong>ein</strong> Metadatum<br />

ist. Um den Umg<strong>an</strong>g mit diesen Dokumenten zu ver<strong>ein</strong>fachen, ist es nützlich Strukturen<br />

und Klassizierungen zu denieren. Jedoch ist bei so vielen unterschiedlichen digitalen<br />

Medien <strong>ein</strong>e <strong>ein</strong>deutige Zuordnung nicht möglich.<br />

Nutzergruppen<br />

Digitale Bibliotheken werden von sehr unterschiedlichen Gruppen benutzt, zum Einen<br />

von den Schöpfern von Informationen, wie z.B. Autoren, Komponisten, Photographen<br />

und Designern, zum An<strong>der</strong>en von den Benutzern, die nach Informationen suchen, und<br />

schlieÿlich von den Bibliothekaren, Herausgebern und Redakteuren. In <strong>ein</strong>igen Fällen gehören<br />

Personen gleichzeitig mehreren Gruppen <strong>an</strong>.<br />

Funktionalitäten<br />

Abbildung 9.1 zeigt <strong>ein</strong> Modell <strong>ein</strong>iger Komponenten, die in <strong>ein</strong>er digitalen Bibliothek<br />

benutzt werden. Diese haben 3 Hauptfunktionen:<br />

• Benutzer beim Kommunizieren mit <strong>der</strong> Bibliothek helfen<br />

• Daten speichern und<br />

• weitere Dienste <strong>an</strong>bieten<br />

94


9.3. KATALOGISIERUNG<br />

Abbildung 9.1.: Komponenten <strong>ein</strong>er digitalen Bibliothek<br />

In <strong>der</strong> Regel hat <strong>ein</strong>e digitale Bibliothek <strong>ein</strong>e Client-Server Architektur. Benutzer greifen<br />

mittels Computern, den Clients, auf die Bibliothek, sprich Server, zu. In <strong>ein</strong>igen Fällen<br />

sind Clients auch automatisierte Roboter, die z. B. die Bibliothek mit Daten befüllen<br />

o<strong>der</strong> Archive und Sammlungen indizieren. Repositories sind die Server zum Speichern und<br />

Ausliefern <strong>der</strong> gesammelten Informationen, Search Systems liefern den Benutzern Kataloge<br />

und Indizes zum Finden von Informationen und Location Systems bieten schlieÿlich<br />

Dienste zum Identizieren und Aunden von Informationen. In <strong>ein</strong>igen Fällen k<strong>an</strong>n diese<br />

Architektur um weitere Dienste und Server erweitert werden, die entwe<strong>der</strong> Kopien von<br />

Daten spiegeln (Mirrors) o<strong>der</strong> zwischenspeichern (Cache). Ein fundamentales Problem<br />

digitaler Bibliotheken ist die Interoperabilität zwischen den vielen verschiedenen Servern<br />

und Clients, die mit völlig unterschiedlichen Programmen arbeiten.<br />

Um dieses Problem zu lösen, wurden digitale Bibliothek-St<strong>an</strong>dards entwickelt, um die<br />

vielen unterschiedlichen Datenmengen <strong>ein</strong>heitlich nutzbar zu machen.<br />

9.3. Katalogisierung<br />

B<strong>ein</strong>ahe jede Bibliothek hat <strong>ein</strong>en Katalog mit Einträgen aller Materialien des Archivs.<br />

Der Katalog hilft Benutzern Materialien in <strong>der</strong> Bibliothek zu nden, stellt bibliographische<br />

Informationen über die Objekte bereit und ist <strong>ein</strong> wichtiges Werkzeug zum Verwalten des<br />

Archives [Arm00]. Um <strong>ein</strong>e <strong>ein</strong>heitliche Struktur des Katalogs zu erreichen, benötigt m<strong>an</strong><br />

strikte Regeln, nach denen die bibliographischen Einträge erstellt werden.<br />

So entst<strong>an</strong>den Ende <strong>der</strong> Sechziger Jahre <strong>ein</strong>ige wichtige Regeln zur Katalogisierung, die<br />

auf <strong>ein</strong>en Beschluss <strong>ein</strong>er Konferenz in Paris 1961 basieren:<br />

95


KAPITEL 9. EINFÜHRUNG IN DIGITALE BIBLIOTHEKEN<br />

• AACR Anglo-Americ<strong>an</strong> Cataloging Rules<br />

Wird überwiegend im englisch-sprachigen Raum benutzt. Wurde 1967 verabschiedet.<br />

• AACR2 ist die zweite Ausgabe von 1978 6<br />

• RAK Regeln für die alphabetische Katalogisierung<br />

Zu unterscheiden in zwei Vari<strong>an</strong>ten, RAK-ÖB (öentliche Bibliotheken) und RAK-<br />

WB (wissenschaftliche Bibliotheken). Wurde 1975 verabschiedet. 7<br />

Für die computerbasierende Speicherung und Verarbeitung von bibliographischen Einträgen<br />

wurden weitere formale elektronische Formate entwickelt:<br />

• MARC Machine-Readable Cataloging<br />

Entwickelt von <strong>der</strong> Library Of Congress 8<br />

• MAB Maschinelles Austauschformat für Bibliotheken 9<br />

Durch die ständige Weiterentwicklung von Computertechnologien wurden auch diese Austauschformate<br />

regelmäÿig erneuert und <strong>an</strong>gepasst. So entstehen beson<strong>der</strong>s durch XML<br />

(Extensible Markup L<strong>an</strong>guage) seit Anf<strong>an</strong>g dieses Jahrhun<strong>der</strong>ts <strong>ein</strong>ige neue Formate wie<br />

MarcXML, DublinCore und MABXML. Listings 9.1, 9.2 und 9.3 zeigen <strong>ein</strong>ige Beispiele<br />

für diese Formate.<br />

Listing 9.1: Beispiel: Original MARC (Ausschnitt)<br />

&245 10|aArithmetic /|cCarl S<strong>an</strong>dburg ; illustrated as <strong>an</strong> <strong>an</strong>amorphic adventure by Ted R<strong>an</strong>d.<br />

&260 |aS<strong>an</strong> Diego :|bHarcourt Brace Jov<strong>an</strong>ovich,|cc1993.<br />

Listing 9.2: Beispiel: MARCXML Inst<strong>an</strong>ce (Ausschnitt)<br />

<br />

Arithmetic /<br />

Carl S<strong>an</strong>dburg ; illustrated as <strong>an</strong> <strong>an</strong>amorphic adventure by Ted R<strong>an</strong>d.<br />

<br />

<br />

S<strong>an</strong> Diego :<br />

Harcourt Brace Jov<strong>an</strong>ovich,<br />

c1993.<br />

<br />

Listing 9.3: Beispiel: Dublin Core Tr<strong>an</strong>sformation (Gesamtes Dokument)<br />

<br />

Arithmetic / <br />

S<strong>an</strong>dburg, Carl, 1878-1967. <br />

R<strong>an</strong>d, Ted, ill. <br />

<br />

S<strong>an</strong> Diego :Harcourt Brace Jov<strong>an</strong>ovich,<br />

c1993.<br />

6 http://www.aacr2.org/<br />

7<br />

für weitere Informationen siehe http://www.rak-weiterarbeit.de/<br />

8 http://www.loc.gov/marc/<br />

9 http://www.ddb.de/st<strong>an</strong>dardisierung/formate/mab.htm<br />

96


9.4. FAZIT<br />

eng<br />

A poem about numbers <strong>an</strong>d their characteristics. Features <strong>an</strong>amorphic, or distorted,<br />

drawings which c<strong>an</strong> be restored to normal by viewing <strong>fr</strong>om a particular <strong>an</strong>gle or by viewing the<br />

image's reflection in the provided Mylar cone.<br />

One Mylar sheet included in pocket.<br />

Arithmetic<br />

Children's poetry, Americ<strong>an</strong>.<br />

Arithmetic<br />

Americ<strong>an</strong> poetry.<br />

Visual perception.<br />

<br />

Eine ausführliche Beschreibung dieser St<strong>an</strong>dards liefern die Texte Metadaten (siehe<br />

Kapitel 12) und Metadatenst<strong>an</strong>dards (siehe Kapitel 13).<br />

9.4. Fazit<br />

Wie im Text beschrieben, gibt es viele Gründe die für den Einsatz digitaler Bibliotheken<br />

sprechen. Gerade durch die in den letzten Jahrzehnten entwickelten Technologien und<br />

das Einführen von St<strong>an</strong>dards sind <strong>ein</strong>ige wichtige Grundlagen geschaen worden, die <strong>ein</strong>e<br />

positive Zukunft vorausdeuten. Aber auch aus wirtschaftlicher Sicht bieten digitale Bibliotheken<br />

viele Vorteile, um die steigenden Kosten l<strong>an</strong>g<strong>fr</strong>istig zu senken und zu stabilisieren.<br />

Projekte wie das 1967 von Fred Kilgour gegründete OCLC (Online Computer Library<br />

Center) helfen fundamental beim Aufbau und <strong>der</strong> wachsenden Akzept<strong>an</strong>z von digitalen<br />

Bibliotheken. So b<strong>ein</strong>haltet die Datenb<strong>an</strong>k des OCLC inzwischen über 35 Millionen Einträge<br />

im MARC-Format, auf die viele Bibliotheken zurückgreifen, um mit den gleichen<br />

Datensätzen zu arbeiten und somit <strong>ein</strong> Austauschen und Wie<strong>der</strong>nden von Dokumenten<br />

ver<strong>ein</strong>fachen.<br />

Aber auch natürliche Bedingungen zwingen traditionelle Bibliotheken beim Umdenken,<br />

da alte Bücher teilweise in <strong>ein</strong>em schlechten Zust<strong>an</strong>d sind. Eine digitale Kopie k<strong>an</strong>n den<br />

Inhalt solcher Dokumente zeitlos und überall verfügbar machen <strong>ein</strong>es <strong>der</strong> Hauptziele<br />

digitaler Bibliotheken.<br />

97


10. Aufgaben und Formen digitaler<br />

Bibliotheken<br />

10.1. Probleme konventioneller Bibliotheken<br />

Seit <strong>ein</strong>igen Jahrtausenden existiert auf <strong>der</strong> Welt schon die ursprüngliche Bibliothek. Die<br />

Aufgaben jetztiger traditionellen Bibliotheken bestehen im Auswählen, Erwerbung, Erschlieÿung,<br />

Bereitstellung und Archivierung von Büchern und <strong>an</strong><strong>der</strong>en Publikationsformen<br />

wie Zeitschriften, Tonträgern, Bildmaterialien, Mikrolme. Aber heute existieren Menge<br />

gravierende Probleme, mit <strong>der</strong> die traditionelle Bibliothek zu kämpfen hat. Hier sollen<br />

bewuÿt nur solche Probleme gen<strong>an</strong>nt werden, die auch von Bibliothekaren als Probleme<br />

<strong>an</strong>erk<strong>an</strong>nt werden. Diese Probleme betreen nicht nur groÿe öentliche Einrichtungen,<br />

son<strong>der</strong>n auch kl<strong>ein</strong>e private Bibliotheken. Die bek<strong>an</strong>ntesten Probleme sind:<br />

• Fehlen<strong>der</strong> Stauraum für Bücher: Durch den stetigen Zuwachs <strong>an</strong> Büchern gibt<br />

es kaum <strong>ein</strong>e Bibliothek, die nicht über fehlenden Lagerraum für Bücher klagt.<br />

• M<strong>an</strong>geln<strong>der</strong> Platz für Leser: Dieses Problem haben beson<strong>der</strong>s Bibliotheken von<br />

<strong>Uni</strong>versitäten, bei denen die Anzahl <strong>der</strong> Studenten sehr stark gestiegen sind.<br />

• Säure<strong>fr</strong>aÿ <strong>an</strong> Büchern: Bei vielen Büchern, die etwa in <strong>der</strong> Zeit von 1850 bis 1950<br />

gedruckt wurden, löst sich das Papier infolge von Säureschäden auf.<br />

• Räumliche Entfernung für Nutzer: Der Nutzer muss zur Bibliothek hin um<br />

diese nutzen zu können. Der Wunsch <strong>ein</strong>e Bibliothek aufzusuchen nimmt mit <strong>der</strong><br />

Entfernung rapide ab.<br />

• Kostenschere zwischen Anschaungen und Budgetmitteln: Die Anschaffungsbudgets<br />

von Bibliotheken wurden weniger stark o<strong>der</strong> gar nicht <strong>an</strong>gehoben; oft<br />

sogar reduziert. Dies führte vielerorts bereits zu Abbestellungen von Büchern und<br />

<strong>an</strong><strong>der</strong>en Publikation.<br />

• Konikt zwischen Breite des Best<strong>an</strong>ds und akutem Bedarf: Eine konventionelle<br />

Bibliothek besitzt nur wenige Mehrfachausgaben <strong>ein</strong>es Buches. Wenn plötzlich<br />

<strong>ein</strong> bestimmtes Thema aktuell ist, kommt es d<strong>an</strong>n zu diesem Konikt.<br />

• Aufwendiger Beschaungs- und Erschlieÿungsvorg<strong>an</strong>g: Beschaung und Erschlieÿung<br />

<strong>der</strong> neuen Publikationen sind <strong>ein</strong> sehr zeitrauben<strong>der</strong> und komplizierter<br />

Prozess.<br />

98


10.2. AUFGABEN EINER DIGITALE BIBLIOTHEK<br />

• Umständliche Fernleihe: 40% aller bestellten Fernleihkopien werden nicht abgeholt<br />

und das kostet ca. 35 Millionen Euro. Eine durchschnittliche Lieferzeit ist 21<br />

Tagen.<br />

10.2. Aufgaben <strong>ein</strong>er digitale Bibliothek<br />

Es gibt viele Möglichkeiten um die Aufgaben <strong>ein</strong>er digitalen Bibliothek zu denieren.<br />

Jeweils durch verschiedene St<strong>an</strong>dpunkten kommt es zu <strong>ein</strong>er etwas <strong>an</strong><strong>der</strong>en Gewichtung.<br />

In diesem Abschnitt werden drei mögliche Aufgaben beschrieben.<br />

10.2.1. Sicht heutiger Bibliotheksnutzer<br />

Aus <strong>der</strong> Beschreibung <strong>der</strong> Probleme konventioneller Bibliotheken versteht m<strong>an</strong> sofort die<br />

Aufgaben <strong>ein</strong>er digitalen Bibliothek. Einfach zu sagen:<br />

Die Hauptaufgabe <strong>ein</strong>er digitalen Bibliothek besteht darin, durch den Einsatz<br />

digitaler Technologien Probleme konventioneller Bibliotheken zu beseitigen<br />

o<strong>der</strong> zumindest zu reduzieren und Mehrwerte z.B. in Form neuartiger Dienste<br />

zu schaen.<br />

M<strong>an</strong> muss erst diese Aufgabe berücksichtigen, sonst ersch<strong>ein</strong>en die alten Probleme wie<strong>der</strong>.<br />

Das Lösen aller Probleme durch digitale Bibliotheken ist ebenfalls nicht <strong>ein</strong>fach. Aber es<br />

besteht die Ch<strong>an</strong>ce <strong>an</strong> allen etwas zu tun. Mit technischen und org<strong>an</strong>isatorischen Mitteln<br />

k<strong>an</strong>n <strong>ein</strong>e völlig neue Basis geschat werden. Dies reicht aber nicht g<strong>an</strong>z, da <strong>ein</strong>e auf neuer<br />

technologischer Basis aufgebaute Lösung immer wie<strong>der</strong> neue Erwartungen und Ansprüche<br />

schat. Durch Digitalisierung können zusätzliche Ch<strong>an</strong>cen wahrgenommen werden.<br />

Eine sehr detaillierte Gegenüberstellung von konventionellen und digitalen Bibliotheken<br />

bringen Mitchell und Strimpel [MS97]. Das Hauptmerkmal <strong>der</strong> Unterscheidung ist <strong>der</strong><br />

Grad <strong>der</strong> gleichzeitigen, physikalischen Präsenz von Inhalten und Nutzern. Bei den meisten<br />

Punkten ist die digitale Bibliothek wesentlich vorteilhafter. Nur die drei letzten Punkte<br />

verweisen auf Vorteile <strong>der</strong> konventionellen Bibliothek.<br />

99


KAPITEL 10. AUFGABEN UND FORMEN DIGITALER BIBLIOTHEKEN<br />

Konventionelle Bibliothek<br />

−Hohe Kosten<br />

−Ortsgebunden<br />

−Feste Önungszeiten<br />

−Groÿer Platzbedarf<br />

−Dokumente u.U. nicht verfügbar<br />

−Basierend auf örtlichem Best<strong>an</strong>d<br />

−Inst<strong>an</strong>dhaltungs- und Ersatzprobleme<br />

−M<strong>an</strong>uelles Indexieren und Suchen<br />

+Originale<br />

+Angenehm zu lesen<br />

+Im Kontext stehend<br />

Digitale Bibliothek<br />

+Niedrige Kosten<br />

+Nicht ortsgebunden<br />

+Flexible Önungszeiten<br />

+Geringer Platzbedarf<br />

+Dokumente immer verfügbar<br />

+K<strong>an</strong>n verteilte Bestände kombinieren<br />

+Wenige Inst<strong>an</strong>dhaltungsprobleme<br />

+Automatisches Indexieren &<br />

Suchen<br />

−Reproduktionen<br />

−Weniger <strong>an</strong>genehm zu lesen<br />

−Aus dem Kontext gerissen<br />

10.2.2. Sicht <strong>der</strong> wissenschaftlichen Forschung<br />

Viele in den Forschungsbereiche tätige Wissenschaftler benutzen Internet-basierte Dienste.<br />

Dazu gibt es auch viele Informatiker, die sich mit dem Thema digitale Bibliotheken<br />

beschäftigen. Die Aufgaben des Internets sollen so erweitert werden, dass die Funktion<br />

<strong>ein</strong>er Bibliothek integriert werden soll. Für diese Sichtweise wird folgende Denition von<br />

Schmidt et al <strong>an</strong>gegeben [SSNM97]:<br />

Es ist die Aufgabe <strong>ein</strong>er digitalen Bibliothek, die Ausnutzung des globalen,<br />

vernetzten Informationsuniversums zu verbessern, mit klarer Ausrichtung auf<br />

die Bedürfnisse des individuellen Nutzers und s<strong>ein</strong>er Tätigkeit.<br />

Diese Denition <strong>der</strong> Aufgaben spiegelt <strong>ein</strong>e in <strong>der</strong> wissenschaftlichen Forschung oft vertretenden<br />

Auassung. Vom Ausdruck Informationsuniversum bekommt m<strong>an</strong> die Idee <strong>der</strong><br />

universellen Weltbibliothek. Eine <strong>der</strong> verbreitesten Auassungen in <strong>der</strong> wissenschaftlichen<br />

Forschung ist, dass diese Weltbibliothek zumindest soweit aufgebaut werden muss bis sie<br />

ohne die Mittlerfunktion von Spezialisten auskommen k<strong>an</strong>n. Aber es gibt auÿer den Wissenschaftler<br />

noch viele <strong>an</strong><strong>der</strong>e Nutzergruppen, die verschiedene Anfor<strong>der</strong>ungen für digitale<br />

Bibliothek haben; das darf m<strong>an</strong> nicht vergessen. Die folgende Denition k<strong>an</strong>n das besser<br />

lösen.<br />

10.2.3. Marktwirtschaftliche Sicht<br />

Auÿer den vorherigen Sichtweisen gibt es noch <strong>ein</strong>e dazwischen liegende marktwirtschaftlich<br />

motivierte Sichtweise, die lautet:<br />

Es ist die Aufgabe <strong>ein</strong>er digitalen Bibliothek für <strong>ein</strong>em privaten, akademischen<br />

und industriellen Nutzerkreis attraktive Produkte und eziente Dienste<br />

100


10.3. PRODUKTE EINER DIGITALEN BIBLIOTHEK<br />

<strong>an</strong>zubieten, die diesem helfen <strong>an</strong> das benötigte und gewünschte in digitalen<br />

Dokumenten gespeicherte Fachwissen zu gel<strong>an</strong>gen.<br />

Hier wird <strong>ein</strong>e digitale Bibliothek als <strong>ein</strong>e Service-Einrichtung bedacht, die Produkte und<br />

Dienste <strong>an</strong>bietet. Die Hauptaufgabe dieser Einrichtung ist es, die Bedürfnisse und die<br />

Wünsche <strong>der</strong> Nutzer zu erfüllen. Nur nach dieser Nutzerorientierung k<strong>an</strong>n es den Wettbewerb<br />

bestehen. Es ist nicht nur <strong>ein</strong>e Software o<strong>der</strong> <strong>ein</strong> Automat, son<strong>der</strong>n auch <strong>ein</strong>e org<strong>an</strong>isatorische<br />

Einheit mit Mitarbeitern, Prozessen und technischen Hilfsmitteln. Es bietet<br />

auch die Mittlerfunktion zwischen Anbietern (Autoren, Verlage) und Nutzern (Studenten,<br />

Wissenschaftlern) <strong>an</strong>.<br />

10.3. Produkte <strong>ein</strong>er digitalen Bibliothek<br />

Das konventionelle Spektrum <strong>der</strong> wissenschaftlichen Information und Kommunikation<br />

besteht üblich aus Büchern (Monographien, Lehrbücher, Referatsorg<strong>an</strong>e, Tagungsbände,<br />

Nachschlagewerke etc.) und Zeitschriften. In <strong>der</strong> digitalen Welt ist dieses Spektrum<br />

deutlich gröÿer. Zu digitalen Büchern, Zeitschriften kommen noch Forschungssoftware,<br />

Datensammlungen in elektronischer Form, Visualisierungen, Animationen, Multimediaund<br />

Hypermedia-Produkte, Elektronische Newsletter, Globale Hypertexte und verteilte<br />

Informationssystem.<br />

Eine digitale Bibliothek unterscheidet sich aufgrund ihrer g<strong>an</strong>z typischen Produkte von<br />

<strong>ein</strong>er konventionellen Bibliothek. Vom Internet unterscheidet sie sich aufgrund <strong>der</strong> Qualität<br />

ihrer Produkte und <strong>der</strong> in ihrem Zusammenh<strong>an</strong>g <strong>an</strong>gebotenen Dienstleistungen. Die<br />

wichtigsten Produkte <strong>ein</strong>er digitalen Bibliothek sind:<br />

• Digitale Dokumente: Sie sind die primären Produkte <strong>ein</strong>er digitalen Bibliothek.<br />

Als digitale Dokumente k<strong>an</strong>n m<strong>an</strong> alle Formen von nicht materiell (d.h. immateriell)<br />

bzw. digital dargestellter Informationen verstehen. Beispiele sind Text-, Graphik-,<br />

Audio- und Video-Dokumente.<br />

• Metadaten: Unter Metadaten (Daten über Daten) versteht m<strong>an</strong> strukturierte<br />

Daten, mit <strong>der</strong>en Hilfe <strong>ein</strong>e Informationsressource beschrieben und dadurch besser<br />

aundbar gemacht wird. Im Falle von Bibliotheken sind es beschreibende Daten<br />

zu den digitalen Dokumenten, die in ihren Kompetenzbereich fallen. Z.B. Informationen<br />

über Titel, Autor, Thema, Aufbewahrungsort <strong>ein</strong>es Dokuments, Sprache,<br />

Beziehungen zu <strong>an</strong><strong>der</strong>en Dokumenten etc. Durch Metadaten werden Objekte und<br />

Informationen identizierbar gemacht. Eine typische Anwendung <strong>der</strong> Metadaten ist<br />

<strong>ein</strong> Katalog, wobei dieser in <strong>der</strong> Regel nur Dokumente im eigenen Best<strong>an</strong>d nachweist.<br />

Beim Suchen und Abrufen spielen Metadaten <strong>ein</strong>e beson<strong>der</strong>s groÿe Rolle.<br />

Die oben gen<strong>an</strong>nten Produkte stammen nicht unbedingt aus dem eigenen Best<strong>an</strong>d. Im<br />

Falle von Metadaten müssen diese selbst erstellt werden.<br />

101


KAPITEL 10. AUFGABEN UND FORMEN DIGITALER BIBLIOTHEKEN<br />

10.4. Dienstleistungen <strong>ein</strong>er digitalen Bibliothek<br />

Neben dem Liefern und Beschaen von Produkten können noch <strong>ein</strong>e Menge von <strong>an</strong><strong>der</strong>en<br />

Dienstleistungen gleichzeitig <strong>an</strong>geboten werden. Die Bedürfnisse diejenigen Nutzer, die<br />

sich wegen digitaler Dokumente <strong>an</strong> die Bibliothek wenden, bestimmen die Auswahl <strong>der</strong><br />

Dienstleistungen und die Kompetenzen, die die Bibliothek <strong>ein</strong>bringen k<strong>an</strong>n. Hier werden<br />

<strong>ein</strong>ige Beispiele grob vorgestellt:<br />

• Zugri auf <strong>ein</strong> Dokument: Statt <strong>ein</strong>er normalen Lieferung von Büchern k<strong>an</strong>n<br />

dem Nutzer <strong>ein</strong> zeitlich begrenzter Zugri auf <strong>ein</strong> Dokument gewährt werden.<br />

• Proldienst: Der Nutzer übergibt <strong>der</strong> Bibliothek <strong>ein</strong> Prol s<strong>ein</strong>er Interessen (d.h.<br />

<strong>ein</strong>e Liste von Schlagwörter). Dieses Prol wird benutzt, um im festen täglich, wöchentlich<br />

o<strong>der</strong> monatlichen Zyklus die Neuzugänge <strong>der</strong> gewünschte Recherche (<strong>ein</strong><br />

Katalogs o<strong>der</strong> <strong>ein</strong>e bibliographischen Datenb<strong>an</strong>k) auszuwählen, die zu diesen Schlagwörtern<br />

passen. Wenn <strong>ein</strong> Titel im Katalog ersch<strong>ein</strong>t o<strong>der</strong> <strong>ein</strong> Eintrag in <strong>ein</strong>er Datenb<strong>an</strong>k<br />

die Interessen des Nutzers entspricht, wird <strong>der</strong> Nutzer sofort z.B. durch<br />

Email benachrichtigt.<br />

• Durchführung von o<strong>der</strong> Unterstützung bei Recherchen: Für den Nutzer ist<br />

das Suchen von relev<strong>an</strong>ter Information oft mit groÿer Unsicherheit und mit Problemen<br />

verbunden. Um das besser zu lösen, k<strong>an</strong>n hier das Personal <strong>ein</strong>er Bibliothek<br />

beratende Unterstützung geben o<strong>der</strong> aber die Aufgabe als G<strong>an</strong>zes übernehmen.<br />

• Schulung im Selbst-Recherchieren: Bei groÿen Gruppen von Nutzern besteht<br />

<strong>der</strong> Bedarf, sie in <strong>der</strong> Durchführung von selbstinitiierten Recherchen auszubilden.<br />

• Erstellung von Thesauren und Klassikationssystemen: Thesauren und Klassikationssysteme<br />

sind wichtige Hilfsmittel für die Beschreibung und das Suchen von<br />

Wissensprodukten. Nur mit ihrer Hilfe ist es möglich, <strong>ein</strong>e Zuordnung von Dokumenten<br />

nach sem<strong>an</strong>tischen, also inhaltlichen Gesichtspunkten, zu machen. Bibliotheken<br />

können auch hier ihre Kompetenz <strong>an</strong>bieten, um <strong>der</strong>artige Aufgaben für <strong>an</strong><strong>der</strong>e Einrichtungen<br />

o<strong>der</strong> Firmen zu lösen.<br />

Ein Thesaurus ist in <strong>der</strong> Dokumentationswissenschaft <strong>ein</strong> kontrolliertes Vokabular,<br />

dessen Begrie durch Relationen mit<strong>ein</strong><strong>an</strong><strong>der</strong> verbunden sind. Bibliothekare benutzen<br />

den Ausdruck für <strong>ein</strong>e systematische Sammlung und Bearbeitung von Begrien<br />

<strong>ein</strong>es Fachgebietes. Ein Thesaurus enthält auch die Beziehungen zwischen Begrien;<br />

nämlich Synonyme, Antonyme, Polyseme und Überbegrie.<br />

Ein Klassikationssystem teilt das Wissen <strong>der</strong> Welt o<strong>der</strong> <strong>ein</strong>es Fachgebietes in Klassen<br />

o<strong>der</strong> in Hierarchien <strong>ein</strong>. Allgem<strong>ein</strong>e Klassikationssysteme sind vielfach von<br />

Bibliothekaren festgelegt worden. Bek<strong>an</strong>nte Beispiele sind das System <strong>der</strong> amerik<strong>an</strong>ischen<br />

Kongressbibliothek (Library of Congress Subject Headings 1 ) und das<br />

1 http://www.loc.gov/<br />

102


10.5. ORGANISATIONSFORMEN<br />

Dewey-System (Dewey Decimal System 2 ). Im Internet wird ebenfalls von Klassi-<br />

kationssystemen Gebrauch gemacht, so z.B. von den Firmen Dino 3 , Excite 4 und<br />

Yahoo 5 .<br />

• Beratung bzgl. <strong>der</strong> Speicherung, Konvertierung und Sicherung digitaler<br />

Dokumente: Die Kompetenz, die <strong>ein</strong>e digitale Bibliothek sich auf diesem ihrem<br />

zentralen Tätigkeitsbereich erwirbt, k<strong>an</strong>n auch für Nutzer von groÿem Interesse<br />

s<strong>ein</strong>, die vielleicht nur gelegentlich ähnliche Probleme zu lösen haben.<br />

• Persönlicher Arbeitsplatz: Durch das System und das Netz k<strong>an</strong>n die Bibliothek<br />

leicht ihre Nutzer weitere Informatik-Funktionen bieten. Ein Beispiel ist <strong>ein</strong> persönlicher<br />

Arbeitsplatz, <strong>der</strong> Nutzern <strong>ein</strong>e Software-Umgebung zur Verfügung stellt, in<br />

<strong>der</strong> sie Textverarbeitungs-, Statistik- o<strong>der</strong> Graphikprogramme au<strong>fr</strong>ufen können.<br />

Diese Beispiele haben starke Ähnlichkeit mit den entsprechenden Dienstleistungen in <strong>ein</strong>er<br />

konventionellen Bibliothek. Daher ist es k<strong>ein</strong> Zufall, son<strong>der</strong>n <strong>der</strong> Grund dafür, warum diese<br />

Dienste <strong>fr</strong>üher von Bibliothekaren wahrgenommen worden. Um diese Dienste ausüben<br />

zu können, benötigt das Bibliothekspersonal nicht nur das Wissen über Bücher, son<strong>der</strong>n<br />

Kenntnisse über alle wissensrelev<strong>an</strong>ten Medien. Z.B. Sollten die Bibliothekare die Werkzeuge<br />

kennen, die m<strong>an</strong> für das Suchen <strong>ein</strong>setzt; wissen, wie gut die Ergebnisse sind, die<br />

sie liefern; und erkennen, wie m<strong>an</strong> die Schwächen des <strong>ein</strong>en Werkzeugs durch die Stärken<br />

<strong>ein</strong>es <strong>an</strong><strong>der</strong>en kompensiert.<br />

10.5. Org<strong>an</strong>isationsformen<br />

Die Org<strong>an</strong>isationsformen <strong>der</strong> digitalen Bibliotheken lassen sich <strong>an</strong>h<strong>an</strong>d verschiedener Kriterien<br />

wie Gröÿe, Sammelschwerpunkt, Trägerschaft und Funktion unterscheiden. Die<br />

Grenzen zwischen <strong>ein</strong>zelnen Org<strong>an</strong>isationsformen sind nicht immer <strong>ein</strong>deutig zu ziehen.<br />

In diesem Abschnitt wird <strong>ein</strong>ige Org<strong>an</strong>isationsformen kurz illustriert:<br />

• Fachgebietsbibliothek: Wie bei Fachgesellschaften und Fachzeitschriften werden<br />

sich Studenten und berufstätige Wissenschaftler und Fachleute immer spezieller werdenden<br />

Fachgebieten zuwenden. Sie erwarten ihre Wissensversorgung auf ihrem Spezialgebiet<br />

von <strong>ein</strong>er Fachgebietsbibliothek. Fachgebietsbibliothek ist <strong>ein</strong>e Bibliothek,<br />

die sich bezüglich ihres Sammelschwerpunktes auf <strong>ein</strong> Fachgebiet spezialisiert hat.<br />

Die Fachgebietsbibliothek ist in <strong>der</strong> Regel <strong>ein</strong> Teil <strong>ein</strong>er <strong>an</strong><strong>der</strong>en Einrichtung; beispielsweise<br />

Institutsbibliotheken <strong>ein</strong>er Hochschulbibliothek, Bibliotheken wissenschaftlicher<br />

Forschungs<strong>an</strong>stalten, Archive und Museen, Bibliotheken von Ver<strong>ein</strong>en, Verbänden,<br />

Gesellschaften, Parlaments-, Behörden und Gerichtsbibliotheken o<strong>der</strong> Zentrale<br />

Fachbibliotheken 6 .<br />

2<br />

Dewey war <strong>der</strong> Grün<strong>der</strong> <strong>der</strong> (inzwischen aufgelösten) Bibliotheksschule <strong>der</strong> Columbia-<strong>Uni</strong>versität in<br />

New York. http://www.houston.public.lib.ga.us/Ref_deweydecimal.htm<br />

3 http://www.dino-online.de/<br />

4 http://www.excite.com/<br />

5 http://www.yahoo.com/<br />

6<br />

Deutsche Zentralbibliothek für Medizin http://www.zbmed.de/<br />

103


KAPITEL 10. AUFGABEN UND FORMEN DIGITALER BIBLIOTHEKEN<br />

• Verlagsbibliothek: Die Verlagsbibliothek erfüllt <strong>ein</strong>e Doppelfunktion: Zu <strong>ein</strong>em<br />

ist sie <strong>ein</strong> Verlag, in dem Autoren elektronisch publizieren und für die Distribution<br />

ihrer Dokumente Hilfe bekommen. Zum <strong>an</strong><strong>der</strong>en ist sie <strong>ein</strong>e Bibliothek. Sie k<strong>an</strong>n die<br />

Dokumente, für die <strong>der</strong> Verlag Rechte besitzt, selbst verteilen o<strong>der</strong> aber Bibliotheken<br />

in Lizenz geben. Einige Verlage sind fachgebietsorientiert, <strong>an</strong><strong>der</strong>e sind es nicht. Die<br />

meisten wissenschaftlichen Verlage haben fachgebietsbezogene Schwerpunkte.<br />

• Hochschulbibliothek: Hochschulbibliotheken sind wissenschaftliche Bibliotheken,<br />

die primär <strong>der</strong> Literatur- und Informationsversorgung von Hochschulen in den Bereichen<br />

Lehre, Forschung und Studium dienen. Dies geschieht insbeson<strong>der</strong>e durch<br />

Informationsvermittlung, Informationsproduktion und Unterstützung wissenschaftlichen<br />

Lehrens und Lernens. Nachgewiesen und zur Verfügung gestellt werden sowohl<br />

wissenschaftliche Monographien, H<strong>an</strong>dbücher, Bibliographien und Fachzeitschriften,<br />

als auch in zunehmendem Maÿe Datenb<strong>an</strong>ken und <strong>an</strong><strong>der</strong>e elektronisch verfügbare<br />

Ressourcen.<br />

• Stadt- o<strong>der</strong> L<strong>an</strong>desbibliothek: Eine Stadtbibliothek ist <strong>ein</strong>e öentliche Bibliothek,<br />

als <strong>der</strong>en Träger (in <strong>der</strong> Regel auch Eigentümer) <strong>ein</strong>e Stadt als öentlichrechtliche<br />

Gebietskörperschaft fungiert. Im Unterschied zu den meisten <strong>an</strong><strong>der</strong>en<br />

öentlichen Bibliotheken, insbeson<strong>der</strong>e L<strong>an</strong>desbibliotheken, ist in Stadtbibliotheken<br />

neben Sach- und Fachliteratur auch die Unterhaltungssparte stark ausgeprägt.<br />

Neben <strong>der</strong> Aufgabe, ihren Bürgern, Bücher o<strong>der</strong> Zeitschriften zur Ausleihe zur Verfügung<br />

zu stellen, k<strong>an</strong>n <strong>ein</strong>e Stadtbibliothek auch verstärkt regional- o<strong>der</strong> stadtbezogene<br />

Werke sammeln.<br />

Als L<strong>an</strong>desbibliothek bezeichnet m<strong>an</strong> diejenigen Bibliotheken, die für das Sammeln,<br />

Archivieren und Bereitstellen des regionalen Schrifttums und s<strong>ein</strong>e Verzeichnung<br />

in <strong>ein</strong>er Bibliograe (L<strong>an</strong>desbibliographie o<strong>der</strong> Regionalbibliograe) zuständig<br />

sind. Ein Teil <strong>der</strong> L<strong>an</strong>desbibliotheken sind gleichzeitig <strong>ein</strong>em <strong>an</strong><strong>der</strong>en Bibliothekstyp<br />

zuzuordnen, was sich oft auch <strong>an</strong> ihren Namen ablesen lässt (z.B. Saarländische<br />

<strong>Uni</strong>versitäts- und L<strong>an</strong>desbibliothek 7 , Nie<strong>der</strong>sächsische Staats- und <strong>Uni</strong>versitätsbibliothek<br />

Göttingen 8 ).<br />

• Firmenbibliothek: Eine Firmenbibliothek ist die von <strong>ein</strong>em Unternehmen unterhaltene<br />

Bibliothek, die in <strong>der</strong> Regel nur rmeninternen Zwecken, <strong>der</strong> Beschaung<br />

<strong>der</strong> für die Mitarbeiter erfor<strong>der</strong>lichen Literatur, dient und öentlich nicht zugänglich<br />

ist. Firmenbibliotheken präsentieren sich bisl<strong>an</strong>g so gut wie ausschlieÿlich im<br />

rmeninternen Intr<strong>an</strong>et. Groÿe Firmen wie die Siemens AG unterhalten dort sogar<br />

eigene Virtual Libraries.<br />

Deutsche Zentralbibliothek für Wirtschaftswissenschaften (ZBW) http://www.uni-kiel.de/IfW/<br />

zbw/econis.htm<br />

Technische Informationsbibliothek (TIB) http://www.tib.uni-h<strong>an</strong>nover.de/<br />

7 http://www.sulb.uni-saarl<strong>an</strong>d.de/<br />

8 http://www.sub.uni-goettingen.de/<br />

104


10.6. ERSCHEINUNGSFORM ALS WEB-PORTAL<br />

• Privatbibliothek: Als Privatbibliothek bezeichnet m<strong>an</strong> <strong>ein</strong>e in Privateigentum be-<br />

ndliche Bibliothek, die von <strong>ein</strong>er Privatperson zusammengetragen wurde. Unter<br />

Umständen können Privatbibliotheken mit Erlaubnis des Besitzers auch öentlich<br />

zugänglich s<strong>ein</strong>. Bei <strong>ein</strong>er privaten Bibliothek fallen viele <strong>der</strong> Probleme weg, welche<br />

die <strong>an</strong><strong>der</strong>en Bibliothekstypen haben. Die bek<strong>an</strong>ntesten Privatbibliotheken sind die<br />

Bibliotheken namhafter Gelehrter und Bibliophiler (Büchersammler).<br />

Natürlich sind auch <strong>an</strong><strong>der</strong>e Org<strong>an</strong>isationsformen vorstellbar. Die Kombinationen <strong>der</strong> obigen<br />

Beispiele sind auch möglich, damit von Fall zu Fall das Optimum erreicht wird. Es ist<br />

sinnvoll, dass Bibliotheken über ihre Kompetenzbereiche hinweg kooperieren. Die Kooperationsstruktur<br />

wird <strong>ein</strong>e Vernetzung s<strong>ein</strong>, die sich von Fall zu Fall dynamisch verän<strong>der</strong>t.<br />

Eine Vielfalt von Org<strong>an</strong>isationsformen <strong>der</strong> digitalen Bibliothek sind möglich. Sie k<strong>an</strong>n <strong>ein</strong><br />

Teil <strong>ein</strong>er bestehenden Bibliothek s<strong>ein</strong> o<strong>der</strong> aber <strong>ein</strong>e unabhängige Neugründung. Sie k<strong>an</strong>n<br />

r<strong>ein</strong> privater Natur s<strong>ein</strong>, k<strong>an</strong>n für die Zwecke <strong>ein</strong>er Abteilung o<strong>der</strong> <strong>ein</strong>es Instituts aufgebaut<br />

worden s<strong>ein</strong>, o<strong>der</strong> k<strong>an</strong>n den Mitglie<strong>der</strong>n <strong>ein</strong>er Fachgesellschaft o<strong>der</strong> den Einwohnern<br />

<strong>ein</strong>er Stadt zur Verfügung stehen. Eine g<strong>an</strong>z typische Realisierung k<strong>an</strong>n im Rahmen <strong>ein</strong>er<br />

Hochschulbibliothek erfolgen, bei <strong>der</strong> die Nutzer, die Wissenschaftler und Studenten<br />

aller Fachbereiche o<strong>der</strong> nur <strong>ein</strong>es Fachbereichs sind. Entscheidend ist, dass die für die<br />

Wissensgesellschaft wichtigen Dienstleistungen mit <strong>ein</strong>em hohen Grad <strong>an</strong> Professionalität<br />

erbracht werden. Welche Org<strong>an</strong>isationsform dorthin führt, ist sekundär.<br />

10.6. Ersch<strong>ein</strong>ungsform als Web-Portal<br />

Für den Nutzer ist <strong>ein</strong>e digitale Bibliothek <strong>ein</strong>e bevorzugte Schnittstelle zu den im Netz<br />

verfügbaren Wissensprodukten. Sie ist, um die Terminologie des Internet zu benutzen, <strong>ein</strong><br />

Portal, also <strong>ein</strong>e Pforte zum Netz. Sie bietet <strong>ein</strong>en weltweiten Zug<strong>an</strong>g zu wissenschaftlichen<br />

Informationen (über Internet/Intr<strong>an</strong>et). Um die gefor<strong>der</strong>ten Dienste zu erbringen, bedient<br />

sich diese Bibliothek (in Abb. 10.1 als B1 gekennzeichnet) eigener Betriebsmittel o<strong>der</strong><br />

greift auf <strong>an</strong><strong>der</strong>e Bibliotheken (in Abb. 10.1 als B2 bezeichnet) o<strong>der</strong> auf <strong>an</strong><strong>der</strong>e Netzdienste<br />

zurück. Sie ist bemüht <strong>ein</strong>e gewisse Beziehung zu jedem Kunden herzustellen, um in <strong>der</strong><br />

Lage zu s<strong>ein</strong> besser als <strong>an</strong><strong>der</strong>e Dienstleister im Netz auf s<strong>ein</strong>e Wünsche <strong>ein</strong>zugehen.<br />

105


KAPITEL 10. AUFGABEN UND FORMEN DIGITALER BIBLIOTHEKEN<br />

Abbildung 10.1.: Externe Einbindung <strong>ein</strong>er digitalen Bibliothek<br />

Im Normalfall wird <strong>der</strong> Nutzer digitale Dokumente elektronisch nutzen, aber das muss<br />

nicht unbedingt so s<strong>ein</strong>. Der Nutzer k<strong>an</strong>n sich auch dafür entscheiden, die digitalen Dokumente<br />

in <strong>der</strong> Bibliothek auf Papier ausdrucken zu lassen, falls sie dafür geeignet sind,<br />

und d<strong>an</strong>n <strong>an</strong> s<strong>ein</strong>en Arbeitsplatz schicken zu lassen.<br />

Die Homepage im Netz ist die Fassade <strong>ein</strong>er Bibliothek. Es gibt inzwischen mehrere Bibliotheken,<br />

die <strong>ein</strong>en Zug<strong>an</strong>g zum Internet haben. Ihre Homepage sind nicht alle gleich<br />

gut gemacht. Als Beispiel sei die Homepage <strong>der</strong> Nie<strong>der</strong>sächsische Staats- und <strong>Uni</strong>versitätsbibliothek<br />

Göttingen 9 wie<strong>der</strong>gegeben. Sie macht <strong>ein</strong>en professionellen Eindruck. Diese<br />

Homepage verweist sowohl auf die konventionellen Abteilungen als auch auf ihre digitale<br />

Bibliothek. Auch enthält sie Hinweise auf aktuelle Ereignisse und Ver<strong>an</strong>staltungen.<br />

10.7. Eine mögliche technische Realisierung<br />

Der Einsatz <strong>ein</strong>er digitalen Bibliothek setzt <strong>ein</strong>e mo<strong>der</strong>ne Informatik-In<strong>fr</strong>astruktur voraus.<br />

Sie ist normalerweise k<strong>ein</strong> zentrales System, son<strong>der</strong>n über mehrere im Netz verbundene<br />

Rechner verteilt. Die Leistungsfähigkeit und die Ausfallsicherheit werden dadurch verbessert.<br />

Wie in Abb. 10.2 dargestellt, stellt <strong>ein</strong>e digitale Bibliothek sich den Betreibern und Nutzern<br />

gegenüber als <strong>ein</strong> verteiltes Informatik-System dar. Ihre Struktur besteht aus <strong>ein</strong>em<br />

Client/Server-System, das über <strong>ein</strong> öentliches Netz, in <strong>der</strong> Regel das Internet, den Nutzern<br />

s<strong>ein</strong>e Dienste zur Verfügung stellt. Diese Struktur ist <strong>ein</strong>e Form <strong>ein</strong>es verteilten<br />

Informatik-Systems, in dem zwei Software-Komponenten zusammen kooperieren. Typischerweise<br />

enthält <strong>der</strong> Server die Anwendungslogik und erledigt die Datenverwaltung, <strong>der</strong><br />

Client realisiert die Nutzungsoberäche.<br />

9 http://www.sub.uni-goettingen.de/<br />

106


10.7. EINE MÖGLICHE TECHNISCHE REALISIERUNG<br />

Bei den meisten Fällen ist <strong>der</strong> Client immer <strong>ein</strong> Web-Client und <strong>der</strong> Server immer <strong>ein</strong><br />

Web-Server. Damit gibt es für beide starke Beschränkungen, aber auch groÿe Vorteile.<br />

Einerseits ist die Art <strong>der</strong> Interaktion durch die Web-Protokolle (wie z.B. HTTP, HTT-<br />

PS etc.) beschränkt. An<strong>der</strong>erseits k<strong>an</strong>n <strong>der</strong>selbe Client im Prinzip auf alle <strong>an</strong> das Web<br />

<strong>an</strong>geschlossene Server zugreifen.<br />

Abbildung 10.2.: Struktur <strong>ein</strong>er digitalen Bibliothek<br />

Ein Bibliothekssystem hat groÿe Ähnlichkeit mit <strong>an</strong><strong>der</strong>en Informatik-Systemen. Es wird<br />

durch vier Aspekte charakterisiert; nämlich Daten, Geräte, Software und org<strong>an</strong>isatorische<br />

Maÿnahmen.<br />

• Daten: Als eigene Daten des Bibliotheks-Servers gelten zu <strong>ein</strong>em <strong>der</strong> Best<strong>an</strong>d <strong>an</strong><br />

Dokumenten, den er vorhält, die beschreibenden Daten (sog. Metadaten), über die<br />

er verfügt, sowie die für den Betrieb erfor<strong>der</strong>lichen administrativen Daten (Nutzer,<br />

Liefer<strong>an</strong>ten, Bestellungen, Abrechnungen).<br />

• Geräte, Nutzerseite: Die Schwerpunkte liegen auf <strong>der</strong> Ausstattung des Rechners<br />

am Arbeitsplatz und den Eigenschaften des Netz<strong>an</strong>schlusses.<br />

Leistungsfähige PCs o<strong>der</strong> Arbeitsplatzrechner: Für den Nutzer sollten die Zugrie<br />

auf <strong>an</strong>gebotene Dokumente möglich s<strong>ein</strong>, ohne den Arbeitsplatz verlassen<br />

zu müssen. Um Text-, Graphik-, Audio-, Video-Dokumente benutzen zu können,<br />

müssen Farbbildschirm, Lautsprecher, evtl. Drucker vorh<strong>an</strong>den s<strong>ein</strong>.<br />

Anschluss <strong>an</strong> das interne o<strong>der</strong> externe Netz: Hier liegt bei vielen Firmen, aber<br />

vor allem bei privaten Nutzern, <strong>der</strong> Engpass. Für <strong>ein</strong>e sinnvolle Nutzung ist<br />

<strong>ein</strong> ISDN-Anschluss (64 Kbit/s) die untere Grenze.<br />

• Geräte, Bibliotheksseite: Gegenüber den Arbeitsplätzen <strong>der</strong> Nutzer sind hier die<br />

Anfor<strong>der</strong>ungen deutlich höher. Folgende Voraussetzungen müssen fast immer erfüllt<br />

s<strong>ein</strong>:<br />

107


KAPITEL 10. AUFGABEN UND FORMEN DIGITALER BIBLIOTHEKEN<br />

Leistungsfähige PCs o<strong>der</strong> Arbeitsplatzrechner: Der für den Server-Betrieb bediente<br />

Rechner muss mit ausreichendem Speicher- und Verarbeitungskapazität<br />

versehen s<strong>ein</strong>. Durch Auslagerung von Aufgaben auf <strong>an</strong><strong>der</strong>e Rechnern im Netz<br />

k<strong>an</strong>n die Speicher- und Verarbeitungskapazität ausgeglichen werden. Auÿerdem<br />

ist für die Datensicherung <strong>ein</strong> B<strong>an</strong>dlaufwerk notwendig.<br />

Interne Vernetzung: In <strong>ein</strong>er internen Umgebung (z.B. innerhalb <strong>ein</strong>er Firma<br />

o<strong>der</strong> <strong>ein</strong>es Instituts) hängen Server und Arbeitsplatzrechner meist <strong>an</strong> <strong>ein</strong>em<br />

lokalen Netz (LAN). Sowohl beim Ethernet als auch beim Tokenring liegt die<br />

Leitungskapazität bei 100 MBit/s; das ist für die meisten Fälle ausreichend.<br />

Anschluss <strong>an</strong> das externe Netz: Gegenüber kl<strong>ein</strong>e Firmen und Haushalte verfügen<br />

die groÿen Anbieter z.B. <strong>Uni</strong>versitätsinstitute fast immer über sehr leistungsfähige<br />

Anschlüsse (100MBit/s und mehr).<br />

• Software: Im Bereich <strong>der</strong> Software-Komponenten sollten die Nutzer- und Bibliotheksseite<br />

gleichwertig beh<strong>an</strong>delt werden. Der Betreiber <strong>der</strong> Bibliothek muss sich<br />

Ged<strong>an</strong>ken über beide Seiten machen.<br />

• Org<strong>an</strong>isatorische Maÿnahmen des Betreibers: Auÿer <strong>der</strong> oben gen<strong>an</strong>nten drei<br />

Aspekte sind org<strong>an</strong>isatorische Maÿnahmen (m<strong>an</strong> spricht auch von Orgware) für <strong>ein</strong>e<br />

Informatik-Anwendung auch sehr wichtig.<br />

Dienstleistungs-Bereitschaft: Die Nutzer <strong>ein</strong>er elektronischen Bibliothek stellen<br />

sehr hohe Anfor<strong>der</strong>ungen bezüglich <strong>der</strong> Verfügbarkeit und <strong>der</strong> Nutzbarkeit des<br />

Systems. Eine Verfügbarkeit rund um die Uhr ist <strong>der</strong> Maÿstab. Der Zugri<br />

zu den Diensten muss <strong>ein</strong>fach s<strong>ein</strong> und die Reaktionszeit des Systems deutlich<br />

unter <strong>der</strong> Sekundenschwelle liegen, sonst wird es als Belastung empfunden und<br />

gemieden.<br />

Sicherung <strong>der</strong> Daten und Dienste: Die vorh<strong>an</strong>denen Dokumente in <strong>ein</strong>er digitalen<br />

Bibliothek stellen <strong>ein</strong> hohes Investment dar. Deren Verlust wäre inakzeptabel.<br />

Denn <strong>der</strong>en Wie<strong>der</strong>herstellung wäre mit sehr hohen Kosten und Zeitverlusten<br />

verbunden. Deswegen sind regelmäÿige Datensicherungen und ausgetestete<br />

Wie<strong>der</strong>herstellungsverfahren von groÿer Bedeutung. Die Verfügbarkeit<br />

<strong>der</strong> Dienste muss gesichert werden, weil l<strong>an</strong>ge Ausfallzeiten für die Nutzer zu<br />

Problemen führen können.<br />

Schutz-Maÿnahmen: Internet ist <strong>ein</strong> unsicheres öentliches Netz. Jedesmal wenn<br />

aus dem internen Netz <strong>ein</strong>er Firma heraus auf <strong>ein</strong> Internet-Angebot zugegriffen<br />

wird, müssen Vorkehrungen wie Passwörter, Virenschutz und elektronische<br />

Br<strong>an</strong>dmauern (Firewalls) als Voraussetzung bestehen. M<strong>an</strong> will eigene Dokumente<br />

möglichst auch nur <strong>der</strong> gewünschten Zielgruppe zur Verfügung stellen.<br />

Je nach unterschiedlichen Situationen gibt es verschiedene Sicherheitspolitiken.<br />

108


10.8. FAZIT<br />

10.8. Fazit<br />

In dieser Ausarbeitung werden mehrere Sichten <strong>ein</strong>er digitalen Bibliothek (wie z.B. Aufgaben,<br />

Produkte, Dienstleistungen, Org<strong>an</strong>isationsformen etc.) detailliert erläutet. Aber<br />

diese beschriebenen Inhalte basieren nur auf denen zur Zeit zugreifbaren Technologien.<br />

Die Zukunft <strong>der</strong> Bibliothek könnte auch g<strong>an</strong>z <strong>an</strong><strong>der</strong>s aussehen, da viele externe Faktoren<br />

wie neue Technologien o<strong>der</strong> neue Anfor<strong>der</strong>ungen auf die zukünftige Bibliothek <strong>ein</strong>wirken.<br />

109


11. Verteilte und för<strong>der</strong>ierte digitale<br />

Bibliotheken<br />

11.1. Einleitung<br />

In den letzten Jahren haben digitale Bibliotheken zunehmend <strong>an</strong> Bedeutung gewonnen.<br />

Digitale Bibliotheken ermöglichen den Zugri <strong>ein</strong>er Vielzahl von Benutzern auf groÿen<br />

Mengen digitaler Dokumente <strong>der</strong> verschiedensten Medientypen (z.B. Texte, Videolme,<br />

Musik, Bil<strong>der</strong>, usw.).<br />

11.1.1. Digital Bibliothek<br />

Teilweise werden Digitale Bibliotheken auch virtuelle Bibliotheken gen<strong>an</strong>nt. Eine Virtuelle<br />

Bibliothek, auch Online Bibliothek, bietet Literaturinformationen und Literatur elektronisch<br />

über das Internet. Das Älteste Beispiel ist die www-virtual library vom Ern<strong>der</strong> des<br />

WWW. Freiwillige Experten auf <strong>der</strong> g<strong>an</strong>zen Welt pegen <strong>ein</strong>zelne Fachgebiete und stellen<br />

auf Grund bestimmter Qualitäts<strong>an</strong>for<strong>der</strong>ungen Listen von Links zu informativen Webseiten<br />

ins Netz. Im Gegensatz zur virtuellen Bibliothek, die nur digitale Objekte nachweist,<br />

bezieht die Digitale Bibliothek neben den Digitalen Objekten alle Objekte <strong>ein</strong>er existierenden<br />

Bibliothek mit <strong>ein</strong>. Die elementarsten Eigenschaften von digitalen Bibliotheken<br />

bestehen darin, dass sie elektronische Dokumente beliebigen Typs (z. B. Text-, Graphik-,<br />

Audio- o<strong>der</strong> Video-Dokumente) verwalten bzw. Bereitstellen. Der Zugri durch den Nutzer<br />

auf die bereitgestellten Dienste <strong>ein</strong>er digitalen Bibliothek wird über HTML-basierte<br />

Webseiten ermöglicht. Daher ist nahezu jede digitale Bibliothek über <strong>ein</strong>en konventionellen<br />

Web-Browser zugreifbar. Eine vollständige Digitale Bibliothek hat die Funktionen<br />

<strong>ein</strong>er traditionellen Bibliothek wie Sammeln,Auswählen, Erschlieÿen, Aufbereiten für die<br />

Benutzung und Archivierung.<br />

11.1.2. Verteilte bzw. fö<strong>der</strong>ierte digitale Bibliotheken<br />

Eine verteilte digitale Bibliothek ist <strong>ein</strong>e digitale Bibliothek, die aus mehreren Dokumentenspeichern<br />

zu <strong>ein</strong>em Gesamtsystem ver<strong>ein</strong>t wurde. Und diese sind über <strong>ein</strong> Netzwerk<br />

verbunden. Die verteilte Bibliothek wird verwendet, um in <strong>ein</strong>em Netzwerk vorh<strong>an</strong>dene<br />

Dokumente für alle Benutzer leicht zugänglich zu machen. Eine Beispiel ist NZDL<br />

(http://www.sadl.uleth.ca/nz/cgi-bin/library), die <strong>ein</strong>e Zusammenstellung mehrerer<br />

verschiedener Kollektionen digitaler Dokumente ist. Ein <strong>an</strong><strong>der</strong>es Beispiel ist NCSTRL<br />

(http://www.ncstrl.org/), die <strong>ein</strong> Zusammenschluss von Institutionen (vor allem Hoch-<br />

110


11.2. VORGEHENSWEISEN ZUR FÖDERATION VON DIGITALEN BIBLIOTHEKEN<br />

schulen) ist. Die digitale Bibliotheken bilden <strong>ein</strong>en Zusammenschluss gleichartiger Softwaresysteme.<br />

Bei <strong>ein</strong>er fö<strong>der</strong>ierten digitalen Bibliothek h<strong>an</strong>delt es sich ebenfalls um <strong>ein</strong> verteiltes Gesamtsystem.<br />

Hier sind die <strong>ein</strong>zelnen Dokumentenspeicher allerdings vollständig autonome<br />

digitale Bibliotheken. Diese Systeme behalten ihre unterschiedlichen Eigenschaften. Daher<br />

ist <strong>ein</strong> Aufbau <strong>ein</strong>es Zusammenschlusses aufwendiger als bei gleich gearteten Systemen<br />

bzw. Komponenten.<br />

11.2. Vorgehensweisen zur Fö<strong>der</strong>ation von digitalen<br />

Bibliotheken<br />

Es gibt verschiedene Ansätze zur Fö<strong>der</strong>ation von digitalen Bibliotheken unterhalb <strong>ein</strong>es<br />

Portals. Dabei wären prinzipielle zwei Vorgehensweisen denkbar.<br />

Zunächst werden viele fö<strong>der</strong>ierte digitale Bibliotheken als <strong>ein</strong> <strong>ein</strong>ziges Gem<strong>ein</strong>samsystem<br />

in das Portal integriert. D<strong>an</strong>n können die fö<strong>der</strong>ierten digitalen Bibliotheken innerhalb<br />

des Portals zusammenführt werden. Ein externes System müsste in das Portal integriert<br />

werden. Bei <strong>der</strong> Fö<strong>der</strong>ation <strong>der</strong> digitalen Bibliotheken k<strong>an</strong>n m<strong>an</strong> auf extierende Konzepte<br />

zurückgegreifen. Daher wäre die Integration digitaler Bibliotheken innerhalb <strong>ein</strong>es Portals<br />

auf relativ <strong>ein</strong>facher Art durchzuführen. Die fö<strong>der</strong>ierte digitale Bibliothek würde alle<br />

<strong>ein</strong>zelnen am Zusammenschluss beteiligten Dokumentenquellen kapseln und dem Portal<br />

<strong>ein</strong>e <strong>ein</strong>heitliche Zugrisschnittstelle bereitstellen.<br />

Bei <strong>der</strong> <strong>an</strong><strong>der</strong>en Vorgehensweise könnte das Portal selbst als fö<strong>der</strong>ierende Inst<strong>an</strong>z beim<br />

Zusammenschluss <strong>der</strong> zu integrierenden digitalen Bibliotheken auftreten. Daher ist <strong>ein</strong><br />

direkter Zugri auf die Dienste und die Inhalte <strong>der</strong> <strong>ein</strong>zelnen <strong>an</strong> <strong>der</strong> Fö<strong>der</strong>ation beteiligten<br />

Dokumentenquellen sichergestellt. Diese beiden Vorgehensweisen sollte m<strong>an</strong> zur<br />

Integration von digitalen Bibliotheken innerhalb <strong>ein</strong>es Portals bevorzugen.<br />

11.3. Prinzipieller Ansatz zur Fö<strong>der</strong>ation digitaler<br />

Bibliotheken<br />

Bei <strong>der</strong> fö<strong>der</strong>ierten digitalen Bibliothek h<strong>an</strong>delt es sich um <strong>ein</strong> fö<strong>der</strong>iertes Informationssystem.<br />

Daher können wir auf das Wissen über fö<strong>der</strong>ierter Datenb<strong>an</strong>ksysteme aufbauen<br />

und für fö<strong>der</strong>ierte digitale Bibliotheken nutzen. Die grundlegenden Dienste von digitalen<br />

Bibliotheken, wie Recherche nach und Zugri auf Dokumente, müssen bei <strong>der</strong> Integration<br />

im Portal auch auf das Portal übertragen werden. Aus diesem Grund ist auch das Portal<br />

als fö<strong>der</strong>iertes Informationssystem zu betrachten. Die Basis <strong>ein</strong>es Informationssystems ist<br />

normalerweise <strong>ein</strong> DBMS. So können wir über verschiedene DBMS-Architekturen <strong>ein</strong>e<br />

Portal-Architektur entwickeln auf <strong>der</strong> Grundlage fö<strong>der</strong>ierte DBS.<br />

111


KAPITEL 11. VERTEILTE UND FÖRDERIERTE DIGITALE BIBLIOTHEKEN<br />

11.3.1. 5-Ebenen-Schema-Architektur<br />

Übertragen auf die Integration von digitalen Bibliotheken in <strong>ein</strong>em Portal ist die globale<br />

Sicht erfor<strong>der</strong>lich, um <strong>ein</strong>heitliche An<strong>fr</strong>agemöglichkeiten bei Recherchen sowohl im<br />

Portal-eigenen Content-Repository als auch in den externen Systemen für den Nutzer zu<br />

gar<strong>an</strong>tieren.<br />

Die 5-Ebenen-Schema-Architektur ist <strong>ein</strong>e mögliche Ausprägung <strong>der</strong> allgem<strong>ein</strong>en Fö<strong>der</strong>ationsstruktur<br />

aus Abbildung 11.1. Es bietet <strong>ein</strong>e globale Sicht in Form <strong>ein</strong>es globalen (fö<strong>der</strong>ierten)<br />

Datenschemas. Mit den darauf basierenden externen Schemata können Sichten<br />

auf den integrierten Gesamtdatenbest<strong>an</strong>d aller <strong>an</strong> <strong>der</strong> Fö<strong>der</strong>ation beteiligten Datenquellen<br />

deniert werden. Für Recherchen besteht daher k<strong>ein</strong>e Möglichkeit auf lokalen konzeptionellen<br />

Schemata zurück zugreifen. Such<strong>an</strong><strong>fr</strong>agen werden also in <strong>ein</strong>heitlicher Form auf<br />

den externen Schemata durchgeführt, <strong>ein</strong>e Tr<strong>an</strong>sparenz bzgl. <strong>der</strong> externen Datenquellen<br />

ist somit sichergestellt.<br />

Abbildung 11.1.: 5-Ebenen-Schema-Architektur<br />

Allerdings ist <strong>der</strong> Ansatz <strong>der</strong> 5-Ebenen-Schema-Architektur nicht als Portal-Architektur<br />

zu benutzen, denn <strong>der</strong> Zugri auf <strong>ein</strong>e digitale Bibliothek entspricht nicht dem direkten<br />

Zugri auf <strong>ein</strong> DBMS. Das System kapselt das DBMS und erlaubt nur strikt reglementierte<br />

Zugrie über entsprechende Schnittstellen. Diese Schnittstellen stellen <strong>ein</strong>e Sicht,<br />

die durch die Vorgabe von Suchattributen und Rechercheoperationen bestimmt werden,<br />

bereit. Die Zug<strong>an</strong>gsschnittstellen sind wegen den verschiedenen digitalen Bibliotheken<br />

unterschiedlich gestaltet. Diese wie<strong>der</strong>um unterliegen allerdings unterschiedlichen Datenmodellen.<br />

Dies wi<strong>der</strong>spricht <strong>der</strong> For<strong>der</strong>ung, dass die Exportschemata im Rahmen <strong>ein</strong>er 5-<br />

Ebenen-Schema-Architektur durch <strong>ein</strong> <strong>ein</strong>heitliches Datenmodell beschrieben s<strong>ein</strong> sollen.<br />

Wir sollen die verschiedenen Exportschemata (also Schnittstellen) in <strong>ein</strong>er <strong>ein</strong>heitlichen<br />

Form darstellen, um dieses Problem zu lösen.<br />

112


11.3. PRINZIPIELLER ANSATZ ZUR FÖDERATION DIGITALER BIBLIOTHEKEN<br />

11.3.2. Mediator-Wrapper-Prinzip<br />

Mediator-Wrapper-Prinzip ist <strong>ein</strong> entsprechende und sehr viel benutzt Ansatz zur Integration<br />

von digitalen Bibliothek. Ein Wrapper ist <strong>ein</strong> Tool zur Extraktion von Daten<br />

aus <strong>ein</strong>er Server-Datenb<strong>an</strong>k. Dazu wird <strong>ein</strong>e spezizierte Ab<strong>fr</strong>age (Query) <strong>an</strong> die Server-<br />

Schnittstelle <strong>der</strong> jeweiligen Website geschickt, aus <strong>der</strong> Daten entnommen werden sollen.<br />

Ein Mediator dient als Schnittstelle zwischen den abgesendeten und extrahierten Daten<br />

des Wrappers und <strong>der</strong> Datensicht des Programms. Das heiÿt, in <strong>der</strong> Mediator-Wrapper-<br />

Logik werden zunächst die vom Nutzer <strong>ein</strong>gegebenen Parameter (wie Reisezielort, Datum<br />

und Preis) <strong>an</strong> den Mediator ges<strong>an</strong>dt, <strong>der</strong> die Daten so formatiert, dass sie vom Wrapper<br />

<strong>an</strong> die jeweiligen Server gesendet werden können. Anschlieÿend sendet <strong>der</strong> Wrapper die<br />

gesuchten und entsprechend extrahierten Daten (z.B. die konkreten Flugdaten) <strong>an</strong> den<br />

Mediator zurück.<br />

Die folgende Abbildung 11.2 ist <strong>ein</strong> charakteristischer Anwendungsfall für mediator-basierte<br />

Informationssysteme.<br />

Abbildung 11.2.: Systemskizze für DL-integriertes Portal auf Basis des Mediator-Wrapper<br />

Bei diesen Anwendungsfall besteht nur die Möglichkeit auf <strong>ein</strong>e Fö<strong>der</strong>ation von Nicht-<br />

Datenb<strong>an</strong>ksystemen ausschlieÿlich lesende Zugrie durchzuführen mit <strong>ein</strong>geschränkten<br />

An<strong>fr</strong>agen. Da <strong>der</strong> Zugri auf <strong>ein</strong>e digitale Bibliothek nicht mit dem Zugri auf <strong>ein</strong> DBMS<br />

gleichzusetzen ist, k<strong>an</strong>n <strong>der</strong> Zusammenschluss von digitalen Bibliotheken unter <strong>ein</strong>em<br />

Portal als Fö<strong>der</strong>ation von Nicht-Datenb<strong>an</strong>ksystemen betrachtet werden. Wir können das<br />

Mediator-Wrapper-Prinzip als <strong>ein</strong> Grundprinzip für entwickelnde Portal-Architektur benutzen.<br />

Im folgende Abschnitt wird die Anwendung des Mediator-Wrapper-Prinzips im<br />

Rahmen konkreter Ansätze betrachtet.<br />

113


KAPITEL 11. VERTEILTE UND FÖRDERIERTE DIGITALE BIBLIOTHEKEN<br />

11.4. Verschiedene Architektur<strong>an</strong>sätze<br />

Das Mediator-Wrapper-Prinzip ist <strong>ein</strong>e grundlegende und abstrakte Vorlage für Systemarchitekturen,<br />

um verschiedene Komponenten (z.B. digitale Bibliotheken) zu <strong>ein</strong>em Gesamtsystem<br />

zusammenzuführen. Aber nicht in jedem Anw<strong>an</strong>dungsfall sind die Komponenten<br />

als Mediator bzw. Wrapper zu bezeichnen. Ein o<strong>der</strong> mehrere Komponenten<br />

als Middleware bieten <strong>ein</strong>e <strong>ein</strong>heitliche, übergreifende Sicht auf die verschiedenen Teilsysteme<br />

<strong>an</strong>. In diesem Fall können wir <strong>ein</strong>e solche Middleware als Mediator bezeichnen.<br />

Für jedes <strong>an</strong>zubindende Teilsystem muss <strong>ein</strong>e Schnittstellenkomponente vorh<strong>an</strong>den s<strong>ein</strong>,<br />

um die spezische Schnittstelle des Teilsystems zu kapseln und <strong>an</strong> den Mediator zu binden.<br />

Diese Komponenten tr<strong>an</strong>sformieren <strong>ein</strong>heitliche Zugrie des Mediators in die spezi-<br />

sche Form des gekapselten Teilsystems und fungieren somit als die Verbindung zwischen<br />

dem Gesamt- und den Teilsystemen. Die Schnittstellenkomponenten können allgem<strong>ein</strong> als<br />

Wrapper bezeichnet werden. In dem folgenden Abschnitt werden die konkreten Ansätze<br />

auf <strong>der</strong> Grundlage <strong>der</strong> Mediator-Wrapper-Prinzips erklärt.<br />

11.4.1. InfoBus<br />

Der InfoBus stellt <strong>ein</strong> Bussystem dar, über das alle Komponenten mit<strong>ein</strong><strong>an</strong><strong>der</strong> kommunizieren.<br />

Die Zusammenarbeit <strong>der</strong> Komponenten geschieht über wenige Schnittstellen,<br />

wodurch für <strong>ein</strong>e geringe Komplexität gesorgt wird. Die Kommunikation läuft asynchron<br />

und symmetrisch ab.<br />

Hierbei h<strong>an</strong>delt es sich um <strong>ein</strong>e auf CORBA basierende verteilte Objekt-In<strong>fr</strong>astruktur (Sehen<br />

Sie die Abbildung 11.3). CORBA, die Common Object Request Broker Architecture,<br />

war <strong>ein</strong>e Antwort auf die starke Zunahme von Hardware- und Software-Produkten. Ziel<br />

war es, <strong>ein</strong>e Middleware zu schaen, welche <strong>ein</strong>e orts-, plattform- und implementationsunabhängige<br />

Kommunikation zwischen Applikationen erlaubt. Die CORBA-basierte Middleware-Technologie<br />

wird durch <strong>ein</strong>en hohen Grad <strong>an</strong> Flexibilität ausgezeichnet. Im Rahmen<br />

dieser In<strong>fr</strong>astruktur werden sämtliche Objekte (Dokumente, Dienste, Informationsquellen)<br />

in Form von CORBA-Objekten repräsentiert, die durch DLIOP (Digital Library<br />

Interoperability Protocol) kommunizieren. Es ist hier relativ <strong>ein</strong>fach möglich, neue Funktionalitäten<br />

nachträglich zu integrieren.<br />

114


11.4. VERSCHIEDENE ARCHITEKTURANSÄTZE<br />

Abbildung 11.3.: InfoBus<br />

Library Services (LS), CORBA-Objekte, repräsentieren <strong>ein</strong>e interne Systemfunktionalität,<br />

wie sie z.B. für die Verwaltung von Dokumenten und Metadaten erfor<strong>der</strong>lich ist.<br />

Darüber hinaus interagieren LS-Objekte mit Library Service Proxies (LSP), die Stellvertreter<br />

innerhalb des InfoBus für externe Systeme, wie z. B. digitale Bibliotheken, darstellen.<br />

Die LSP-Objekte kapseln somit die externen Informationsquellen und fungieren<br />

in diesem Konzept als Wrapper. Durch das Hinzufügen neuer LS-Objekte k<strong>an</strong>n m<strong>an</strong> die<br />

Funktionalität des Systems ver<strong>ein</strong>fachen. Und durch die Integration <strong>der</strong> LSP-Objekte in<br />

die In<strong>fr</strong>astruktur können leicht neue digitale Bibliotheken in <strong>der</strong> Fö<strong>der</strong>ation hinzugefügt<br />

werden.<br />

11.4.2. eVerlag<br />

Das eVerlag-System ist als <strong>ein</strong> hochgradig verteiltes System konzipiert worden. Es h<strong>an</strong>delt<br />

sich um <strong>ein</strong>e Weiterentwicklung <strong>der</strong> digitalen Bibliothek MeDoC(Multi Experiment<br />

Data <strong>an</strong>d Operations Center). eVerlag-System-Architektur k<strong>an</strong>n auch als Beispiel für <strong>ein</strong>e<br />

Umsetzung des Mediator-Wrapper-Prinzips her<strong>an</strong>gezogen werden.<br />

Das eVerlag-System besteht im wesentlichen aus drei Komponenten: Useragent, Centralagent<br />

und Provi<strong>der</strong>agent.<br />

115


KAPITEL 11. VERTEILTE UND FÖRDERIERTE DIGITALE BIBLIOTHEKEN<br />

Abbildung 11.4.: eVerlage-Architektur<br />

Useragenten bilden die Zugrisschnittstelle <strong>der</strong> User auf das System. Ihre Hauptaufgaben<br />

bestehen aus <strong>der</strong> Kapselung von Zug<strong>an</strong>gscharakteristiken und dem Cachen von bestimmten<br />

Daten, um <strong>ein</strong>en perform<strong>an</strong>ten Zugri auf das System gewährleisten zu können. Für<br />

den Zug<strong>an</strong>g zum eVerlag-System bieten unterschiedliche Ausprägungen von User-Agents<br />

verschiedene Arten von Schnittstellen <strong>an</strong>. Hierbei setzt m<strong>an</strong> auf <strong>ein</strong>e HTML-Basierte<br />

Benutzungsschnittstelle. Der User k<strong>an</strong>n über <strong>ein</strong>en Web-Browser auf die Informationen<br />

zugreifen. Die weiteren Useragenten und dessen Systemschnittstellen k<strong>an</strong>n m<strong>an</strong> für die<br />

Anbindung <strong>an</strong><strong>der</strong>er Softwaresysteme zur Verfügung stellen. Auf diese Weise lieÿe sich<br />

auch eVerlage in <strong>ein</strong>e Fö<strong>der</strong>ation mit <strong>an</strong><strong>der</strong>en digitalen Bibliotheken integrieren.<br />

Die zentrale Komponente innerhalb <strong>der</strong> eVerlag-Architektur ist <strong>der</strong> Zentralagent, <strong>der</strong> zwischen<br />

Useragent und Provi<strong>der</strong>agent vermittelt. Der Zentralagent besteht aus sieben M<strong>an</strong>agern:<br />

Userm<strong>an</strong>ager, Agentm<strong>an</strong>ager, Groupm<strong>an</strong>ager, Oeringm<strong>an</strong>ager, Or<strong>der</strong>ingm<strong>an</strong>ager,<br />

Plamentm<strong>an</strong>ager und Licencem<strong>an</strong>ager. So <strong>ein</strong> M<strong>an</strong>ager übernimmt alle grundlegenden<br />

Verwaltungsaufgabe.<br />

Das eVerlag-System selbst sieht in s<strong>ein</strong>er verteilten Architektur allerdings auch selbst die<br />

Anbindung mehrerer Dokumentenquellen vor, welche durch Provi<strong>der</strong>-Agents repräsentiert<br />

werden. Der Provi<strong>der</strong>agent ist die dokumentenverwaltende und dokumentenliefernde<br />

Komponente des eVerlag-Systems. S<strong>ein</strong>e wichtigste Aufgabe besteht darin, das Datenb<strong>an</strong>ksystem<br />

zur Speicherung des Dokumentenbest<strong>an</strong>des vom übrigen System zu kapseln.<br />

An<strong>fr</strong>agen, die Dokumente betreen, werden vom Useragenten <strong>an</strong> den Provi<strong>der</strong>agenten<br />

116


11.4. VERSCHIEDENE ARCHITEKTURANSÄTZE<br />

geschickt, ausgewertet und die Ergebnisse wie<strong>der</strong> zurück geliefert. Bei diesem Fall wird<br />

<strong>der</strong> Zentralagent als Mediator bezeichnet. Die Provi<strong>der</strong>agenten übernehmen die Aufgaben<br />

von Wrappern.<br />

11.4.3. OMNIS/2<br />

Bei <strong>ein</strong>em OMNIS/2-System h<strong>an</strong>delt sich viel mehr um <strong>ein</strong> System, welches mehrere<br />

verschiedene digitale Bibliotheken auf <strong>ein</strong>er Metaebene zusammenfasst, um zusätzliche<br />

übergreifende Funktionalität bei <strong>der</strong> Nutzung <strong>der</strong> <strong>an</strong>gebundenen digitalen Bibliotheken<br />

bereitstellen zu können.<br />

Abbildung 11.5.: OMNIS/2-Architektur<br />

Ein Kernpunkt von OMNIS/2 ist, dass we<strong>der</strong> die <strong>ein</strong>gebundenen digitalen Bibliothekssysteme,<br />

noch die gespeicherten Dokumente geän<strong>der</strong>t werden müssen. Die Dokumente können<br />

dabei in ihren ursprünglichen Systemen verbleiben und müssen nur <strong>ein</strong>deutig aundbar<br />

s<strong>ein</strong>. Wir verwenden dabei <strong>ein</strong>e serverseitige Anbindung <strong>der</strong> OMNIS/2-Datenb<strong>an</strong>k unter<br />

Verwendung von Java- Servlets und <strong>ein</strong>er JDBC-Kopplung. Dabei wird <strong>ein</strong> Webserver<br />

mit Hilfe <strong>der</strong> Servlets zu <strong>ein</strong>em vollständigen Applikationsserver, also dem vollständigen<br />

OMNIS/2-Kernsystem, ausgebaut.<br />

Die Anbindung <strong>der</strong> externen digitalen Bibliotheken erfolgt serverseitig durch Komponenten,<br />

die Best<strong>an</strong>dteil des Servlets sind und von <strong>der</strong>en selbst digitale Bibliothek existieren.<br />

Diesen Komponenten übernehmen die Tr<strong>an</strong>sformation von Such<strong>an</strong><strong>fr</strong>agen in die jeweils<br />

spezischen Formate <strong>der</strong> <strong>an</strong>gebundenen Systeme und nehmen die An<strong>fr</strong>ageergebnisse entgegen,<br />

die d<strong>an</strong>n im OMNIS/2-System weiterverarbeitet werden. Darauf wird das Ergebnis<br />

durch <strong>ein</strong> entsprechend Format zum Browser zurück geliefert. Daher k<strong>an</strong>n diesen Servlet-<br />

Komponenten die Funktion von Wrappern zugeschrieben werden. Das Kernsystem, welches<br />

die Komponenten integriert, ist d<strong>an</strong>n als Mediator zu bezeichnen.<br />

117


KAPITEL 11. VERTEILTE UND FÖRDERIERTE DIGITALE BIBLIOTHEKEN<br />

11.4.4. BlueView<br />

BlueView steht für BlueRose Virtual Integration of Electronic Web Sources und ist<br />

in BlueRose, <strong>ein</strong> zum Teil vom BMBF (Bundesministerium für Bildung und Forschung)<br />

geför<strong>der</strong>tes Projekt, integriert. Im BlueView Projekt <strong>der</strong> <strong>Uni</strong>versität Rostock werden Digitale<br />

<strong>Bibliotheksdienste</strong> basierend auf <strong>der</strong> Architektur von virtuellen Dokumentenservern<br />

(VDS) entwickelt. BlueView k<strong>an</strong>n auch für den Aufbau verteilter o<strong>der</strong> fö<strong>der</strong>ierter digitaler<br />

Bibliotheken verwendet werden.<br />

Mit St<strong>an</strong>dardtools wie Volltextdatenb<strong>an</strong>ken, Information-Retrieval- Systemen, objektrelationalen<br />

Datenb<strong>an</strong>km<strong>an</strong>agementsystemen und Replikations- und Caching-Diensten werden<br />

verschiedene heterogene lokale Dokumentenserver (LDS) in <strong>ein</strong>em Virtuellen Dokumentenserver<br />

ver<strong>ein</strong>t.<br />

Abbildung 11.6.: Der Virtuelle Dokumentenserver <strong>der</strong> BlueView-Architektur<br />

Virtuelle Dokumentenserver lieferen <strong>ein</strong>e homogene Sicht auf <strong>ein</strong>e heterogene Reihe lokaler<br />

Dokumentenquellen. Der Query-Server als <strong>ein</strong> Mediator verteilt die Recherche<strong>an</strong><strong>fr</strong>agen<br />

<strong>an</strong> die verschiedenen LDS(z.B. DBMS, Filesysteme o<strong>der</strong> lokale digitale Bibliotheken).<br />

Wrapper kapseln die jeweils spezischen Schnittstellen <strong>der</strong> LDS, daher bieten Wrapper<br />

<strong>ein</strong>heitliche Recherche und Zugrismöglichkeiten. Der VDS mit Hilfe des Replication-<br />

Service speichert die Zugrie über die Wrapper in <strong>ein</strong>em lokalen Cache ab, um auf den<br />

Query-Server direkt zu zugreifen. Mit Hilfe dieser VDS können unter <strong>an</strong><strong>der</strong>em lokale<br />

Dokumente und die assoziierten bibliographischen Metadaten verwaltet und durchsucht<br />

werden. Nicht lokal gespeicherte Dokumente können repliziert werden, um den Zugri zu<br />

beschleunigen und die Verfügbarkeit zu erhöhen.<br />

Da mehrerer LDS auf <strong>der</strong> Grundlage <strong>ein</strong>es VDS bereits als <strong>ein</strong>e verteilte digitale Bibliothek<br />

realisiert werden k<strong>an</strong>n, sieht BlueView VDS-Architektur auch die Fö<strong>der</strong>ation mehrerer<br />

VDS vor, wodurch Dokumentenrecherchen und -zugrie auch auf weitere (externe)<br />

Dokumentenquellen ausgeweitet werden k<strong>an</strong>n.<br />

118


11.4. VERSCHIEDENE ARCHITEKTURANSÄTZE<br />

11.4.5. DAFFODIL<br />

Abschlieÿend soll <strong>ein</strong> Ansatz von Distributed Agents for User-Friendly Access of Digital<br />

Libraries (DAFFODIL) beschrieben werden. DAFFODIL stellt <strong>ein</strong> agentenbasiertes<br />

Zug<strong>an</strong>gssystem für digitale Bibliotheken dar, dessen Fundament durch die im Internet<br />

verfügbaren digitalen Bibliotheken gebildet wird. Zugri zu diesen wesentlichen Elementen<br />

DAFFODILs wird durch den Einsatz von Wrappern geschaen. Die verschiedenen<br />

Rechercheebenen erstrecken sich von <strong>ein</strong>fachen elementaren Suchoperationen (sog. Moves)<br />

über komplexere Kombinationen dieser Moves (sog. Tactics und Stratagems) bis hin<br />

zu aufwendigen Suchstrategien (Strategies).<br />

Abbildung 11.7.: DAFFODIL-Architektur<br />

Die DAFFODIL-Architektur besteht aus vier Komponenten. Die unterste Ebene besteht<br />

aus den digitalen Bibliotheken, die über <strong>ein</strong> Adapter <strong>an</strong>gesprochen werden. Diese werden<br />

auf <strong>der</strong> darüber liegenden Ebene durch Wrapper-Agenten gekapselt und für das Gesamtsystem<br />

nutzbar gemacht. Das Kernsystem von DAFFODIL wird von <strong>der</strong> dritten Schicht<br />

gebildet. Innerhalb des Kernsystems stellte jede Ebene ihre Funktionen sowohl den <strong>an</strong><strong>der</strong>en<br />

Komponenten des Systems, als auch dem Benutzer zur Verfügung. Genutzt werden im<br />

Wesentlichen die Agenteneigenschaften Kommunikationsfähigkeit, Adaptivität und Autonomie.<br />

Die Moves sind durch die Adapter zu den Informationsquellen implementiert. In <strong>der</strong><br />

Ebene <strong>der</strong> Tactics werden Dienste <strong>der</strong> <strong>ein</strong>zelnen Bibliotheken zu höheren Diensten aggregiert,<br />

beispielsweise zu <strong>ein</strong>em Datenquellen übergreifenden Dienst zur Co-Autorensuche.<br />

Stratagems bilden <strong>ein</strong>en strategischen Teilprozess <strong>der</strong> Recherche ab, bei dem erschöpfend<br />

nach bestimmten Aspekten gesucht wird, beispielsweise Aggregation Browse - Browsen<br />

119


KAPITEL 11. VERTEILTE UND FÖRDERIERTE DIGITALE BIBLIOTHEKEN<br />

von Journal und Konferenzhierarchien nach allen Artikeln zum gesuchten Thema. Strategies<br />

fassen Aktionen auf den Ebenen Moves, Tactics und Stratagems zu <strong>ein</strong>em zum<br />

Benutzerprol passenden Recherchepl<strong>an</strong> zusammen. Der Systemzug<strong>an</strong>g für den Nutzer<br />

wird durch <strong>ein</strong>en User-Interface-Agenten ermöglicht.<br />

Die komplexeren Recherchemechismen (Tactics, Stratagems, Strategies) unterstützen sich<br />

auf den elementaren Moves. Daher agieren diese Recherchemechismen direkt auf den Suchoperationen<br />

<strong>der</strong> <strong>an</strong>geschlossenen digitalen Bibliotheken. Die für die Umsetzung <strong>der</strong> Moves<br />

konzipierten Agenten interagieren somit mit den Wrapper-Agenten und übernehmen die<br />

Koordination <strong>der</strong> Zugrie. Daher k<strong>an</strong>n den auf dieser (internen) Ebene <strong>an</strong>gesiedelten<br />

Agenten die Funktionalität <strong>ein</strong>es Mediators zugeschrieben werden.<br />

11.5. Wrapper<br />

Die Wrapper kapseln die Informationssysteme, um <strong>ein</strong>e <strong>ein</strong>heitliche Schnittstelle auf beliebige<br />

Informationssysteme zu bieten und die Beson<strong>der</strong>heiten <strong>der</strong> Systeme zu ver<strong>ein</strong>heitlichen.<br />

Es existiert verschiedene Möglichkeiten (st<strong>an</strong>dardisierte Schnittstellen, API, Web-Schnittstelle),<br />

um auf <strong>ein</strong>e digitale Bibliothek zuzugreifen.<br />

Die Nutzung st<strong>an</strong>dardisierter Schnittstellen ist i. d. R. nur bei kooperierenden digitalen<br />

Bibliotheken möglich, da die entsprechende Betreiberorg<strong>an</strong>isation für <strong>ein</strong>en zugreifenden<br />

Client (Wrapper) <strong>ein</strong>en autorisierten Zug<strong>an</strong>g <strong>ein</strong>richten muss. Es k<strong>an</strong>n öentlichen Zugänge<br />

<strong>an</strong>bieten, allerdings ist <strong>ein</strong> Zugri auf die Volltexte <strong>der</strong> Dokumente unmöglich, son<strong>der</strong>n<br />

m<strong>an</strong> erhält nur bibliographische Informationen.<br />

Wenn <strong>ein</strong> Wrapper auf <strong>ein</strong> API aufsetzt, muss individuell für dieses API implementiert<br />

werden. Da <strong>der</strong> Umf<strong>an</strong>g <strong>an</strong> Dokumentation bei diesem Fall weniger stark als bei weit<br />

verbreiteten St<strong>an</strong>dards <strong>der</strong> Fall ist und auch kaum <strong>ein</strong>e Referenzimplementierung erwartet<br />

werden k<strong>an</strong>n, ist <strong>der</strong> Implementierungsaufw<strong>an</strong>d hier höher <strong>ein</strong>zuschätzen.<br />

Bei <strong>ein</strong>er nicht kooperierenden digitalen Bibliothek bleibt häug die Web-Schnittstelle als<br />

<strong>ein</strong>zige Zugrismöglichkeit. Die Web-basierten Wrappern setzen direkt auf diesen Web-<br />

Schnittstellen auf und nutzen diese Form des Zug<strong>an</strong>gs, indem sie die von <strong>der</strong> digitalen<br />

Bibliothek ausgelieferten HTML-Seiten interpretieren und die darin kodierten Informationen<br />

extrahieren.<br />

11.6. Fazit<br />

Zur verteilten bzw. fö<strong>der</strong>ierten digitalen Bibliotheken sind zunächst die Vorgehensweise<br />

und <strong>der</strong> prinzipielle Ansatz zu erklären. Wegen <strong>der</strong> Grundfunktion <strong>der</strong> digitalen Bibliothek,<br />

wie Recherche nach und Zugri auf Dokumente, können wir die verteilte bzw.<br />

fö<strong>der</strong>ierte digitale Bibliotheken als <strong>ein</strong> fö<strong>der</strong>iertes Informationssystem bedenken. Dabei<br />

wird das Mediator-Wrapper-Prinzip als <strong>der</strong> am besten geeignete Ansatz bedacht, um verschiedene<br />

digitale Bibliotheken zu <strong>ein</strong>em Gesamtsystem zusammenzuführen. Anschlieÿend<br />

wurde <strong>an</strong>h<strong>an</strong>d <strong>ein</strong>iger Beispiele InfoBus, eVerlage, OMNIS/2, BlueView und DAFFODIL<br />

120


11.6. FAZIT<br />

vorgestellt. Um jedoch <strong>ein</strong>e Architektur für die Integration mehrerer verschiedener digitaler<br />

Bibliotheken ableiten zu können, muss <strong>ein</strong>e übergreifende Sichtweise <strong>ein</strong>genommen<br />

werden. Jedes System besitzt Komponenten zur Kapselung und Anbindung <strong>der</strong> zu fö<strong>der</strong>ierenden<br />

digitalen Bibliotheken. Dafür muss m<strong>an</strong> auf jeden Fall <strong>ein</strong>e o<strong>der</strong> mehrere Komponenten<br />

für die Zugrie auf die digitalen Bibliotheken <strong>an</strong>passen. Die Wahl <strong>der</strong> geeigneten<br />

Schnittstelle richtet sich nach <strong>der</strong> von ihr bereitgestellten Funktionalität und bestimmt<br />

die Art des Wrappers, <strong>der</strong> zur Anbindung <strong>der</strong> digitalen Bibliothek darauf aufsetzt.<br />

121


12. Metadaten<br />

12.1. Denition<br />

Wörtlich genommen sind Metadaten Daten über Daten. Dies ist allerdings mehr <strong>ein</strong>e<br />

Übersetzung des Begris denn <strong>ein</strong>e Denition. Etwas genauer ist die Aussage, Metadaten<br />

seien the sum total of what one c<strong>an</strong> say about <strong>an</strong>y information object at <strong>an</strong>y level of<br />

aggregation[GGSB98, S. 1]. Ein information object ist in diesem Zusammenh<strong>an</strong>g alles,<br />

egal welcher Form o<strong>der</strong> welchen Zust<strong>an</strong>ds, was gefunden und verän<strong>der</strong>t werden k<strong>an</strong>n. Ein<br />

Objekt k<strong>an</strong>n z.B. sowohl <strong>ein</strong> Buch, <strong>ein</strong> Bild, <strong>ein</strong> archäologisches Fundstück, Software o<strong>der</strong><br />

Klausurergebnisse s<strong>ein</strong>. Metadaten sind strukturierte Ressourcenbeschreibungen. Dabei<br />

gibt es k<strong>ein</strong>erlei Vorschriften über die Art <strong>der</strong> Ressourcen und ebensowenig über die Art<br />

<strong>der</strong> Metadatenstruktur o<strong>der</strong> <strong>der</strong> -aussage. We<strong>der</strong> die Ressource noch die Informationen<br />

darüber müssen digitaler o<strong>der</strong> textueller Natur s<strong>ein</strong>. Metadaten gibt es nicht erst seit dem<br />

Computerzeitalter und nicht nur über Bücher, auch wenn (Online-)Bibliothekskataloge<br />

bek<strong>an</strong>nteste Anwendungen sind.<br />

Allen Objekten gem<strong>ein</strong>sam sind drei Eigenschaften, die sich durch Metadaten wie<strong>der</strong>spiegeln<br />

lassen:<br />

• Inhalt - <strong>ein</strong>e intrinsische Information darüber, was das Objekt enthält o<strong>der</strong> wovon<br />

es h<strong>an</strong>delt<br />

• Kontext - Informationen über die Entstehung des Objekts(extrinsisch)<br />

• Struktur - bezeichnet die formalen Assoziationen innerhalb <strong>ein</strong>es Objekt(intrisisch)<br />

o<strong>der</strong> von Objekten unter<strong>ein</strong><strong>an</strong><strong>der</strong>(extrinsisch)<br />

Das Allgem<strong>ein</strong>e ist sowohl Stärke und Schwäche <strong>der</strong> Metadaten. Es erlaubt die Anwendung<br />

in zahllosen Fällen, macht <strong>ein</strong>en <strong>ein</strong>heitlichen Gebrauch aber nahezu unmöglich. Wenn<br />

z.B. das Datum Format ge<strong>fr</strong>agt ist, k<strong>an</strong>n das je nach Kontext mit Aussagen wie 20x30<br />

cm o<strong>der</strong> pdf-Datei belegt s<strong>ein</strong>. Um mit Metadaten arbeiten zu können, ist es nötig,<br />

Regeln für jedes Einsatzgebiet festzulegen. Allerdings ist es auch in Teilgebieten noch<br />

schwierig genug, sich auf <strong>ein</strong>heitliche und verbindliche St<strong>an</strong>dards zu <strong>ein</strong>igen.<br />

12.2. Kategorien<br />

Metadaten werden oft mit <strong>der</strong> Beschreibung des zugrunde liegenden Objekts gleichgesetzt,<br />

aber there is more to metadata th<strong>an</strong> description[GGSB98, S. 3]. Es lassen sich<br />

zusätzliche Informationen speichern, die den Umg<strong>an</strong>g mit dem Objekt erleichtern (o<strong>der</strong><br />

122


12.2. KATEGORIEN<br />

erst ermöglichen) und die nicht aus dem Objekt selbst erschlossen werden können, wie<br />

z.B. <strong>der</strong> Fundort <strong>ein</strong>er altgriechischen Scherbe. Metadaten lassen sich in fünf Kategorien<br />

<strong>ein</strong>teilen, die in den nächsten Unterkapiteln kurz erläutert werden sollen:<br />

• administrative<br />

• deskriptive<br />

• <strong>der</strong> Erhaltung dienende<br />

• technische und<br />

• die Nutzung betreende Metadaten<br />

12.2.1. Administrative Metadaten<br />

Unter administrativen Metadaten versteht m<strong>an</strong> alle Informationen zu <strong>ein</strong>em Objekt, die<br />

zum m<strong>an</strong>agen und verwalten nötig sind. So k<strong>an</strong>n (und sollte wohl auch)z.B. zu jedem Buch<br />

in <strong>ein</strong>er Bibliothek gespeichtert werden, w<strong>an</strong>n es <strong>an</strong>geschat wurde, in welchem Regal <strong>an</strong><br />

welcher Systemstelle es zu nden ist, ob es ausgeliehen werden k<strong>an</strong>n u.ä.<br />

12.2.2. Deskriptive Metadaten<br />

Deskritptive Metadaten sind inhaltliche Beschreibungen und alle Daten, die zur Identizierung<br />

<strong>ein</strong>es Informationsobjekts nötig sind. Darunter fallen Katalog<strong>ein</strong>träge, Abstracts,<br />

Schlagwortindices, aber auch Kommentare von Benutzern, selbsterklärende Hilfen für den<br />

unmo<strong>der</strong>ierten Zugri auf <strong>ein</strong> Objekt o<strong>der</strong> Inhaltsverzeichnisse.<br />

12.2.3. Erhaltungsdienliche Metadaten<br />

Diese Art <strong>der</strong> Metadaten dokumentiert den physischen Zust<strong>an</strong>d <strong>ein</strong>es Objekts sowie die<br />

notwendigen Maÿnahmen zur Erhaltung <strong>der</strong> Ressource. Bei dieser Art von Metadaten<br />

denkt m<strong>an</strong> zuerst <strong>an</strong> alte Bücher o<strong>der</strong> Papyrusrollen, aber auch digitale Dateien können<br />

beschädigt werden und benötigen diese Art von Metadaten, um <strong>ein</strong> l<strong>an</strong>ges Leben zu haben.<br />

12.2.4. Technische Metadaten<br />

Diese Informationen beschreiben, in welchen/m Format(en) die Metadaten vorliegen, welche<br />

Hard- und Software<strong>an</strong>for<strong>der</strong>ungen erfüllt s<strong>ein</strong> müssen, um auf die Objekte zuzugreifen,<br />

ob es sich um komprimierte Daten h<strong>an</strong>delt o<strong>der</strong> wie die Metadaten <strong>der</strong> Objekte org<strong>an</strong>isiert<br />

sind. Ebenfalls in diese Kategorie fallen Sicherheits- und Authentikationsdaten wie<br />

Passwörter o<strong>der</strong> Schlüssel.<br />

123


KAPITEL 12. METADATEN<br />

12.2.5. Nutzungsrelev<strong>an</strong>te Metadaten<br />

In dieser Katagorie nden sich alle Metadaten, die das Verhalten von Benutzern speichern.<br />

Wie oft wurde <strong>ein</strong> Buch ausgeliehen? Wieviele Versionen <strong>ein</strong>es Dokuments gibt es und<br />

was sind die Unterschiede?<br />

12.3. Bibliotheksmetadaten<br />

Für Bibliotheken, egal ob konventionell o<strong>der</strong> digital, spielen Metadaten <strong>ein</strong> wichtige Rolle.<br />

Angesichts groÿer Zahlen zu verwalten<strong>der</strong> Objekte fallen groÿe Datenmengen <strong>an</strong>, die trotzdem<br />

noch ezient genutzt werden sollen. Ein hervorstechendes Merkmal von Metadaten<br />

im Bibliotheksbereich ist ihre Komplexität. Bibliothekskataloge sollen <strong>an</strong>geben:<br />

• ob die gesuchte Ausgabe <strong>ein</strong>es Dokuments vorh<strong>an</strong>den ist<br />

• welche Werke <strong>ein</strong>es Autor vorh<strong>an</strong>den sind<br />

• welche Ausgaben <strong>ein</strong>es Dokuments vorh<strong>an</strong>den sind<br />

• welche Werke zu <strong>ein</strong>em bestimmten Thema vorh<strong>an</strong>den sind<br />

[Bra99, Kap.10.7]<br />

Dazu reicht es nicht, nur Titel und Autor <strong>ein</strong>es Dokuments zu katalogisieren. Es müssen<br />

Schlagwörter herausgeltert werden, die den Inhalt <strong>ein</strong>es Werks repräsentieren, bei<br />

mehrbändigen Werken müssen die Zusammenhänge <strong>der</strong> Einzeldokumente erhalten werden,<br />

Bücher können mehrere Autoren haben, dazu noch <strong>ein</strong>en Herausgeber und <strong>ein</strong>en<br />

Verleger uvam. Darüberhinaus ist es nötig zu speichern, wo das physische Objekt zu den<br />

Metadaten zu nden ist, ob ausgeliehen, vorgemerkt, reparaturbedürftig, verschwunden<br />

o.ä. ist.<br />

Auch wenn m<strong>an</strong> davon ausgehen k<strong>an</strong>n, dass alle Bibliotheken die gleichen Daten benötigen,<br />

darf m<strong>an</strong> daraus nicht folgern, dass aus diesem Umst<strong>an</strong>d nur <strong>ein</strong> <strong>ein</strong>heitliches Format<br />

entst<strong>an</strong>den wäre(s.12.8). Weltweit das meistgenutzte Format ist MARC, in Deutschl<strong>an</strong>d<br />

wird überwiegend MAB2 genutzt.<br />

Um Einheitlichkeit von Metadaten zu erreichen, ist allerdings nicht nur <strong>ein</strong> Formatst<strong>an</strong>dard<br />

nötig, son<strong>der</strong>n auch Über<strong>ein</strong>stimmung in <strong>der</strong> Anwendung dieses St<strong>an</strong>dards. Dafür<br />

muss <strong>ein</strong> kontrolliertes Vokabular benutzt werden, wie es in Deutschl<strong>an</strong>d z.B. durch die<br />

Schlagwortnormdatei(SWD) vorgegeben wird.<br />

Da sich die Projektgruppe mit <strong>der</strong> Realisierung <strong>ein</strong>es <strong>Bibliotheksdienste</strong>s beschäftigt, wird<br />

im folgenden im allgem<strong>ein</strong>en über Metadaten im Bibliotheksbereich ausgeg<strong>an</strong>gen.<br />

12.4. Generierung von Metadaten<br />

Wie kommt m<strong>an</strong> <strong>an</strong> Metadaten? Während in konventionellen Bibliotheken Metadaten zu<br />

den vorh<strong>an</strong>denen Dokumenten von den dort <strong>an</strong>gestellten Menschen erstellt werden, ist<br />

124


12.5. ZWECK VON METADATEN<br />

dies für digitale Bibliotheken mit ihrer groÿen Menge <strong>an</strong> Materialien <strong>ein</strong> nicht g<strong>an</strong>gbarer<br />

Weg.<br />

12.4.1. Experten<br />

Der konventionelle Ansatz ist die Erstellung durch Menschen. Experten <strong>ein</strong>es Gebietes<br />

legen Metadaten zu Dokumenten/Objekten dieses Gebietes <strong>an</strong>. Das Ergebnis sind Metadaten<br />

von hoher Qualität. Nachteile dieser Methode sind die hohen Kosten und die l<strong>an</strong>ge<br />

Dauer <strong>der</strong> Erstellung. Menschen müssen die Texte lesen, in den richtigen Zusammenh<strong>an</strong>g<br />

bringen, katalogisieren, Schlüsselwörter heraussuchen usw. und wollen dafür bezahlt werden.<br />

Ein <strong>an</strong><strong>der</strong>er Weg ist, den Verfasser des jeweiligen Dokuments auch die Beschreibung<br />

desselben <strong>an</strong>fertigen zu lassen.<br />

12.4.2. Automatische Generierung<br />

Mit zunehmen<strong>der</strong> Menge <strong>der</strong> zu katalogisiernden Dokumente stöÿt diese Methode n<strong>an</strong>ziell<br />

und zeitlich <strong>an</strong> ihre Grenzen, also sucht m<strong>an</strong> nach Wegen, Metadaten maschinell<br />

erstellen zu können. Computer sc<strong>an</strong>nen Texte nach vordenierten Schlüsselwörtern und<br />

katalogisieren die Dokumente d<strong>an</strong>n entsprechend <strong>der</strong> gefundenen Kategorien. Diese Art<br />

<strong>der</strong> Metadatengewinnung ist allerdings auf Textdokumente beschränkt, schon bei Bil<strong>der</strong>n,<br />

Noten o<strong>der</strong> Musikstücken stöÿt <strong>der</strong> Computer <strong>an</strong> s<strong>ein</strong>e Grenzen.<br />

12.5. Zweck von Metadaten<br />

Natürlich stellt sich die Frage, ob und wodurch <strong>der</strong> Aufw<strong>an</strong>d und die Kosten zur Metadatenerstellung<br />

gerechtfertigt sind. Unter <strong>der</strong> Voraussetzung, dass es sich um Metadaten<br />

von hoher Qualität h<strong>an</strong>delt, lassen sich diverse Vorteile ausmachen:<br />

leichterer Zugri: Die Suche nach Dokumenten lässt dich durch Metadaten stark verbessern.<br />

Es muss nicht <strong>der</strong> gesamte Inhalt untersucht werden, son<strong>der</strong>n nur die beschreibenden<br />

Daten. Zudem erönen Metadaten die Möglichkeit, verschiedene Dokumententypen und<br />

-sammlungen zu durchsuchen. Die Metadaten müssen dazu allerdings in <strong>ein</strong>em st<strong>an</strong>dardisierten<br />

Format vorliegen, damit <strong>ein</strong>e solche Zusammenarbeit möglich ist.<br />

Kontexterhaltung: Gerade bei archäologischen Objekten und Ausstellungsstücken ist<br />

es wichtig, die Fundorte und Beziehungen unter<strong>ein</strong><strong>an</strong><strong>der</strong> zu dokumentieren. Da sich diese<br />

Daten nicht aus den Objekten selbst gewinnen lassen, müssen sie in Metadaten gespeichert<br />

werden. Aber auch bei Büchern, die Bände <strong>ein</strong>es Gesamtwerkes sind, o<strong>der</strong> digitalen<br />

Objekten, die mit <strong>an</strong><strong>der</strong>en verknüpft sind, ist es wichtig, dies die Metadaten abzulegen,<br />

damit <strong>der</strong> Zusammenh<strong>an</strong>g nicht verloren geht.<br />

Verbreitung: Digitale Dokumente sind wesentlich leichter zu erreichen als traditionelle<br />

Medien. Bücher z.B. haben <strong>ein</strong>en festen St<strong>an</strong>dort in <strong>ein</strong>er Bibliothek, gemalte Bil<strong>der</strong> hängen<br />

in <strong>ein</strong>em Museum. Von digitalen Objekten lassen sich beliebig viele Kopien erstellen,<br />

die auf verschiedenen Servern liegen können, auf die weltweit zugegrien werden k<strong>an</strong>n.<br />

Damit erweitert sich <strong>der</strong> Nutzerkreis ernorm. Dadurch entstehen neue Ansprüche <strong>an</strong> die<br />

125


KAPITEL 12. METADATEN<br />

Objekte. In Metadaten können die Zugrie verschiedener Benutzer, die Art des Gebrauchs<br />

<strong>ein</strong>es Objekts u.ä. aufgezeichnet werden und so als Feedback dienen, um nutzerorientierte<br />

Verän<strong>der</strong>ungen zu ermöglichen.<br />

Multi-Versioning: Objekte können in verschiedenen Versionen auftauchen, z.B. Bil<strong>der</strong><br />

in hoher und niedriger Auösung. In den Metadaten <strong>ein</strong>es Objekts können die Anzahl <strong>der</strong><br />

Versionen und ihre Unterschiede festgehalten werden, genauso wie die Information, was<br />

das Original und was die Kopien des Dokuments sind.<br />

Rechteverwaltung: Metadaten ermöglichen die Speicherung von Zug<strong>an</strong>gsrechten, die<br />

für Objekte bestehen, z.B. ob <strong>ein</strong> Text zum privaten Gebrauch kostenlos vervielfältigt<br />

werden darf o<strong>der</strong> was <strong>der</strong> Download <strong>ein</strong>es Musikstücks kostet.<br />

Erhaltung: Gerade bei digitalen Objekten ist es wichtig zu dokumentieren, unter welchen<br />

Hard- und Softwarebedingungen auf sie zugegrien werden k<strong>an</strong>n. Da sich Computersysteme<br />

schnell verän<strong>der</strong>n, muss nachzuvollziehen s<strong>ein</strong>, unter welchen Bedingungen <strong>ein</strong> Objekt<br />

erschaen wurde, um ihm diese Umgebung wie<strong>der</strong> herzustellen.<br />

Eektivität: Metadaten können auch technischer Natur s<strong>ein</strong>, z.B. Informationen über<br />

Zugrie auf <strong>ein</strong> Repository, Benchmarks <strong>ein</strong>es Rechners. All das lässt sich bei <strong>der</strong> Pl<strong>an</strong>ung<br />

neuer Systeme berücksichtigen und so die Eektivität steigern.<br />

12.6. Speicherung<br />

Damit Metadaten überhaupt <strong>ein</strong>en Nutzen haben, müssen sie mit den beschriebenen Objekten<br />

verknüpft werden. Dazu gibt es zwei Möglichkeiten: entwe<strong>der</strong> die in die Metadaten<br />

wird <strong>ein</strong> Identikationsmerkmal des zugrundeliegenden Objekts aufgenommen, d<strong>an</strong>n<br />

können Metadaten und Objekte getrennt abgespeichert werden(z.B. Kataloge), o<strong>der</strong> die<br />

Metadaten werden in das Objekt <strong>ein</strong>gebunden und mit ihm zusammen gespeichert(z.B.<br />

Webseite)[Arm00].<br />

Beide Verfahren haben Vor- und Nachteile. Werden Daten und Metadaten getrennt, k<strong>an</strong>n<br />

die Verküpfung zwischen beiden verloren gehen. Bei <strong>der</strong> gem<strong>ein</strong>samen Speicherung wird<br />

das Objekt verän<strong>der</strong>t und vergröÿert. Nicht immer sind beide Wege g<strong>an</strong>gbar. In konventionellen<br />

Bibliotheken müssen Metadaten getrennt von ihren Objekten gespeichert werden,<br />

um sie dem Benutzer gesammelt zur Verfügung stellen zu können.<br />

12.7. Fragen/Probleme<br />

So unbestritten <strong>der</strong> Nutzen von Metadaten ist, sie werfen auch Probleme auf. Die f<strong>an</strong>gen<br />

schon bei <strong>der</strong> Generierung <strong>an</strong>. Wieviele Metadaten braucht m<strong>an</strong>? Wird <strong>der</strong> Metadatenkatalog<br />

zu umf<strong>an</strong>greich, ist er unübersichtlich und behin<strong>der</strong>t Suchende eher, als dass er<br />

ihnen hilft. Wieviel Geld und Zeit will m<strong>an</strong> aufwenden, um Metadaten zu sammeln? Welche<br />

Qualität sollen diese Daten haben? Auf diese Fragen gibt es k<strong>ein</strong>e universell richtige<br />

Antwort, sie müssen für jedes Projekt neu be<strong>an</strong>twortet werden.<br />

Bibliotheksbestände än<strong>der</strong>n sich, Dokumente werden umgeschrieben, neu aufgelegt - die<br />

Metadaten müssen aktuell gehalten werden. Es reicht nicht, Metadaten <strong>ein</strong>mal zu erheben,<br />

126


12.8. BEISPIELE<br />

sie müssen gepegt werden. Das verursacht neue Kosten, je öfter aktualisiert wird, desto<br />

mehr.<br />

Die verschiedenen Formate und die fehlende Einheitlichkeit sind die gröÿten Probleme <strong>der</strong><br />

Metadatennutzung. Jedes Einsatzgebiet stellt <strong>an</strong><strong>der</strong>e Anfor<strong>der</strong>ungen <strong>an</strong> die Beschreibung<br />

von Informationsobjekten. Es gibt sehr spezielle Formate, z.B. MeSH(Medical subject<br />

headings) für Dokumente im medizinischen Bereich, bis hin zu allgem<strong>ein</strong>en Formaten wie<br />

Dublin Core, das mit nur 15 Beschreibungselementen auf nahezu jedes Informationsobjekt<br />

<strong>an</strong>gew<strong>an</strong>dt werden k<strong>an</strong>n.<br />

Für jedes Metadatenformat muss m<strong>an</strong> unterscheiden zwischen Struktur- und Inhaltsregeln.<br />

Nur weil Fel<strong>der</strong> den gleichen Bezeichner haben, müssen sie nicht die gleiche Art<br />

von Inhalt tr<strong>an</strong>sportieren. Unter dem Namen Format lässt sich sowohl die Gröÿe <strong>ein</strong>es<br />

Objekt erfassen(z.B.DIN A4) wie auch dessen Datentyp(z.B. PDF). Es sind also nicht nur<br />

<strong>ein</strong>heitliche Strukturregeln nötig, um Austausch zu ermöglichen, son<strong>der</strong>n auch Einigung<br />

über das Füllen dieser Struktur.<br />

12.8. Beispiele<br />

Zum Abschluss sollen <strong>ein</strong>ige Metadatenformate, die für Bibliotheken relev<strong>an</strong>t sind, vorgestellt<br />

werden. Dabei soll es mehr um <strong>der</strong>en Einsatzgebiete, Vor- und Nachteile gehen. Zu<br />

Aufbau und Struktur <strong>der</strong> <strong>ein</strong>zelnen Formate sei auf den Seminarbeitrag Metadatenst<strong>an</strong>dards<br />

verwiesen.<br />

12.8.1. MARC<br />

Das machine readable cataloging format(MARC) wurde Ende <strong>der</strong> 60er Jahre von <strong>der</strong><br />

Library of Congress(LoC) in den USA entwickelt. Aufgrund <strong>der</strong> Bedeutung <strong>der</strong> LoC in<br />

<strong>der</strong> englisch sprachigen Welt wurde MARC schnell internationaler St<strong>an</strong>dard. Anf<strong>an</strong>gs<br />

gab es verschiedene MARC-Vari<strong>an</strong>ten für Zeitschriften, Noten, Karten usw. Ende <strong>der</strong><br />

80er Jahre wurden sie zu dem Gesamtformat USMARC zusammengefasst. Unterschiede<br />

zwischen nationalen USMARC-Vari<strong>an</strong>ten blieben jedoch bestehen. USMARC ist das am<br />

weitesten verbreitete Format für Bibliotheksmetadaten[Bra99, Kap.10.1], was vor allem<br />

auf das OCLC(Online Computer Library Center) zurückzuführen ist. Das OCLC erhebt<br />

bibliographische Metadaten im MARC-Format, die von vielen Bibliotheken genutzt werden(s.http://www.oclc.org).<br />

12.8.2. MAB<br />

MAB steht für Maschinelles Austauschformat für Bibliotheken. MAB entst<strong>an</strong>d in den<br />

70er Jahren, seit 1995 ist MAB2 <strong>der</strong> St<strong>an</strong>dard, <strong>der</strong> auch Online-Einsätze ermöglicht.<br />

MAB besteht auf fünf <strong>ein</strong>zelnen Formaten, die alle <strong>ein</strong>e <strong>ein</strong>heitlich Feldstruktur besitzen:<br />

• MAB-TITEL für bibliographische Daten<br />

• MAB-PND für Personennamen<br />

127


KAPITEL 12. METADATEN<br />

• MAB-GKD für Körperschaftsnamen<br />

• MAB-SWD für Schlagwörter<br />

• MAB-LOKAL für Lokaldaten<br />

[diea] Die Fel<strong>der</strong> werden durch dreistellige Nummern identiziert, die die Bedeutung des<br />

nachfolgenden Datums festlegen. MAB hat vor allem Schwächen in <strong>der</strong> Wie<strong>der</strong>holung von<br />

Fel<strong>der</strong>n(z.B. bei mehreren Autoren), die die Katalog<strong>ein</strong>träge unnötig aufblähen, und hat<br />

<strong>ein</strong>e unübersichtliche Einteilung des Titelfelds in verschiedene Untersätze. Ein weiteres<br />

Problem sind redund<strong>an</strong>t gespeicherte Schlagwortketten, was bei den enormen Datenmengen<br />

unbedingt vermieden werden sollte[Bra99, Kap.10.2.].<br />

12.8.3. Dublin Core<br />

Das Dublin-Core-Format verfolgt <strong>ein</strong>en g<strong>an</strong>z <strong>an</strong><strong>der</strong>en Ansatz und ist auch nicht ursprünglich<br />

für bibliothekarische Zwecke entwickelt worden. Es soll Katalogisierung ver<strong>ein</strong>fachen<br />

und in möglichst vielen Fällen <strong>an</strong>wendbar s<strong>ein</strong>, um so Kooperation unterschiedlicher Gebiete<br />

zu för<strong>der</strong>n.<br />

Der Dublin Core umfasst 15 Elemente, die alle optional sind und beliebig oft wie<strong>der</strong>holt<br />

werden können:<br />

• Title - Titel <strong>der</strong> beschriebenen Ressource<br />

• Creator - Hauptver<strong>an</strong>twortlicher für den Inhalt<br />

• Subject - Schlüsselwort für den Inhalt<br />

• Description - Beschreibung des Inhalts<br />

• Publisher - Ver<strong>an</strong>twortlicher für die Veröentlichung <strong>der</strong> Ressource<br />

• Contributor - Beteiligter am Entstehen <strong>der</strong> Ressource<br />

• Date - Entstehungsdatum<br />

• Type - Art <strong>der</strong> Ressource<br />

• Format - Format <strong>der</strong> Ressource<br />

• Identier - Einzigartiger Bezeichner zur Identizierung<br />

• Source - Verweis auf <strong>an</strong><strong>der</strong>e Ressource die <strong>der</strong> beschriebenen zugrunde liegt<br />

• L<strong>an</strong>guage - Sprache des Inhalts<br />

• Relation - Beziehung zu <strong>ein</strong>er <strong>an</strong><strong>der</strong>en Ressource<br />

• Coverage - zeitliche und räumliche Eigenschaften <strong>der</strong> Ressource<br />

• Rights - Informationen zum Rechtem<strong>an</strong>agement<br />

128


12.9. FAZIT<br />

[Ini]<br />

Mit diesen Elementen lassen sich Ressourcen <strong>ein</strong>fach beschreiben. Es bleibt allerdings die<br />

Frage, ob sie für alle Anwendungszwecke ausreichen und präzise genug sind[Arm99].<br />

12.8.4. MABxml<br />

XML ist als Austauschformat weit verbreitet. Es bietet vielfältige Möglichkeiten zur Weiterverarbeitung,<br />

z.B. XSLT. Um die Vorteile von XML auch mit MAB2-Datensätzen<br />

nutzen zu können, wurde MABxml entwickelt. Es soll exemplarisch für Mapping zwischen<br />

den verschiedenen Formaten vorgestellt werden.<br />

MABxml setzt die MAB2-Tags in XML-Tags um. Für jeden Katalog<strong>ein</strong>trag wird <strong>ein</strong><br />

XML-Element datensatz erstellt, dessen Unterelemente alle MAB-Attribute repräsentieren.<br />

Ein Beispiel für <strong>ein</strong>en MABxml-Datensatz ndet sich hier: http://www.ddb.de/<br />

st<strong>an</strong>dardisierung/formate/mabxml_beispiel_ebene1.xml Für spezielle MAB2-Trennund<br />

Steuerzeichen(z.B. Teilfeldtrennzeichen, Nicht-Sortierzeichen) gibt es eigene Tags,<br />

sämtliche Inhaltsdaten sind in feld-Elementen abgelegt, die als Nummer das entsprechende<br />

MAB2-Tag übernimmt[dieb]. Damit ist MABxml so zu lesen wie MAB. Es ndet<br />

also k<strong>ein</strong> inhaltliches Mapping statt, son<strong>der</strong>n nur <strong>ein</strong> syntaktisches.<br />

12.9. Fazit<br />

Metadaten, beson<strong>der</strong>s im Bibliotheksbereich, können umf<strong>an</strong>greich und komplex s<strong>ein</strong>. Um<br />

damit trotzdem die Vorteile des <strong>ein</strong>facheren Zugris auf und <strong>der</strong> leichteren Verwaltung<br />

von Informationsobjekten nutzen zu können, müssen St<strong>an</strong>dards geschaen und <strong>ein</strong>gehalten<br />

werden. Dabei ist <strong>der</strong> Grundsatz so <strong>ein</strong>fach wie möglich, aber so präzise wie nötig<br />

<strong>an</strong>zuwenden. Je schlichter die Metadatenkategorien, desto aussageloser werden sie. Je konkreter<br />

sie sind, desto weniger allgem<strong>ein</strong> werden sie. Bei <strong>der</strong> Entwicklung von St<strong>an</strong>dards<br />

sollte die Frage, wieviele Metadaten überhaupt sinnvoll sind, stets im Blick behalten werden.<br />

Ein gem<strong>ein</strong>sames Format für alle erdenklichen Metadaten, das allen Anwendungen<br />

und Bedürfnissen Rechnung trägt, wird es kaum geben und ist auch nicht unbedingt<br />

sinnvoll. <strong>Uni</strong>verselle Vergleichbarkeit von Daten bringt nicht zw<strong>an</strong>gsläug brauchbare Ergebnisse<br />

- wo sollte <strong>der</strong> Nutzen <strong>ein</strong>er Verknüpfung medizinischer Fachblätter mit <strong>der</strong><br />

IMDB(http://www.imdb.com) s<strong>ein</strong>? Doch in vielen Fällen ist Austausch erwünscht und<br />

d<strong>an</strong>n sollte er auch möglich gemacht werden.<br />

129


13. Metadatenst<strong>an</strong>dards<br />

13.1. Einleitung<br />

Metadaten über Dokumente sind in <strong>der</strong> automatisierten Verarbeitung unerlässlich. Viele<br />

Dokumentformen sind primär auf die Betrachtung durch Menschen ausgelegt <strong>an</strong>statt auf<br />

das Parsen und Verarbeiten durch Maschinen (z.B. ps, pdf, jpg). Um solche Dokumente zu<br />

verwalten, katalogisieren und auszutauschen benötigt m<strong>an</strong> <strong>ein</strong> externes Metadatenformat<br />

welches Informationen wie Autor, Copyright, Datum u.Ä. festhält. (Siehe hierzu auch: 12)<br />

Zu Anf<strong>an</strong>gszeiten <strong>der</strong> automatischen Verarbeitung von Dokumenten haben viele Institutionen<br />

und Org<strong>an</strong>isationen mit dieser Katalogisierung von<strong>ein</strong><strong>an</strong><strong>der</strong> isoliert begonnen.<br />

Dies führte dazu, dass je<strong>der</strong> Katalog s<strong>ein</strong>e Metadaten in <strong>ein</strong>em unterschiedlichen Format<br />

verwaltete, oft inkompatibel zu allen <strong>an</strong><strong>der</strong>en.<br />

Mit dem Auftreten des Internet entst<strong>an</strong>d nun <strong>der</strong> Wusch, diese verteilten Kataloge zu<br />

ver<strong>ein</strong>en, auszutauschen o<strong>der</strong> abzugleichen, was aufgrund <strong>der</strong> unterschiedlichen Metadaten<br />

zu schwerwiegenden Problemen führte.<br />

Aus diesem Grund engagierten sich diverse Institutionen wie z.B. die US-Amerik<strong>an</strong>ische<br />

LOC 1 o<strong>der</strong> das W3C 2 um <strong>an</strong>erk<strong>an</strong>nte St<strong>an</strong>dards für diese Metadaten zu schaen. Das<br />

Ergebnis dieses Engagements ist <strong>ein</strong>e Reihe von St<strong>an</strong>dards <strong>an</strong>gepasst <strong>an</strong> unterschiedliche<br />

Zwecke. Einige dieser St<strong>an</strong>dards werden hier nun im <strong>ein</strong>zelnen betrachtet und erläutert.<br />

13.2. Metadatenst<strong>an</strong>dards<br />

13.2.1. Dublin Core<br />

Dublin Core (DC) ist <strong>ein</strong> weit verbreiteter St<strong>an</strong>dard zur Beschreibung Digitaler Objekte<br />

<strong>der</strong> von <strong>der</strong> DCMI 3 weiterentwickelt wird. DC ist k<strong>ein</strong> bibliothekarisches Format son<strong>der</strong>n<br />

versteht sich selbst eher als kl<strong>ein</strong>ster gem<strong>ein</strong>samer Nenner im Bezug auf Metadaten. Es<br />

werden hierbei nur grundlegende Informationen zu <strong>ein</strong>em Objekt gespeichert die allerdings<br />

dennoch <strong>ein</strong>e gute allgem<strong>ein</strong>gültige Beschreibung liefern.<br />

DC Beschreibungen werden in XML ausgedrückt und sind somit sowohl durch Menschen<br />

als auch durch Maschinen leicht zu verstehen und weiterzuverarbeiten. Weiterhin besteht<br />

DC nur aus <strong>ein</strong>igen wenigen Elementen, was die Arbeit mit diesem Format weiter ver<strong>ein</strong>facht.<br />

1<br />

Library of Congress - http://www.loc.gov/<br />

2<br />

World Wide Web Consotium - http://www.w3c.org/<br />

3<br />

Dublin Core Metadata Initiative - http://www.dublincore.org/<br />

130


13.2. METADATENSTANDARDS<br />

Zur Beschreibung von Objekten stehen mit DC folgende Elemente zur Verfügung:<br />

• 15 core Elemente:<br />

Title: Name <strong>der</strong> Ressource<br />

Creator: die für den Inhalt ver<strong>an</strong>twortliche Person o<strong>der</strong> Org<strong>an</strong>isation<br />

Subject: Thema des Inhalts<br />

Description: Zusammenfassung des Inhalts<br />

Publisher: Org<strong>an</strong>isation o<strong>der</strong> Person die den Inhalt zugänglich gemacht hat<br />

Contributor: Org<strong>an</strong>isation o<strong>der</strong> Person die <strong>ein</strong>e Beitrag zum Inhalt <strong>der</strong> Ressource<br />

geleistet hat<br />

Date: das Erstellungsdatum<br />

Type: Art <strong>der</strong> Ressource<br />

Format: digitale o<strong>der</strong> physikalische Repräsentation <strong>der</strong> Ressource<br />

Identier: <strong>ein</strong>deutige Referenz <strong>der</strong> Ressource (z.B. ISBN Nummer, URL)<br />

Source: Quelle <strong>der</strong> Ressource<br />

L<strong>an</strong>guage: Sprache des Inhalts<br />

Relation: Referenz zu <strong>an</strong><strong>der</strong>en, verw<strong>an</strong>dten Ressourcen<br />

Coverage: Bereich, den <strong>der</strong> Inhalt abdeckt (Zeitraum, geographisches Gebiet...)<br />

Rights: Information zu den mit <strong>der</strong> Ressource verknüpften Rechten (z.B. Copyright<br />

• 3 weitere qualied Elemente:<br />

Audience, Proven<strong>an</strong>ce, RightsHol<strong>der</strong><br />

• Pro Element auch Subelemente (qualier) möglich:<br />

z.B.: created, valid, issued, modied für das date Element<br />

Diese Elemente dürfen innerhalb <strong>ein</strong>es DC Datensatzes mehrfach wie<strong>der</strong>holt werden. Ein<br />

Beispiel für <strong>ein</strong>en DC Datensatz ndet sich im Kapitel 13.2.6.<br />

13.2.2. MARC<br />

MARC steht für MAchine Readable Caloging und ist <strong>ein</strong> Metadatenst<strong>an</strong>dard, <strong>der</strong> von<br />

<strong>der</strong> LOC entwickelt wurde um es Computern zu ermöglichen bibliograsche Informationen<br />

auszutauschen, zu nutzen und zu interpretieren [LOCa]. Dabei sind aus dem inzwischen<br />

30 Jahre alten MARC St<strong>an</strong>dard mehrere Nachfolger und Abw<strong>an</strong>dlungen entst<strong>an</strong>den, so<br />

dass es heute <strong>ein</strong>e g<strong>an</strong>ze Reihe leicht unterschiedlicher MARC Versionen gibt, die sich<br />

allerdings bemühen weitgehen zu<strong>ein</strong><strong>an</strong><strong>der</strong> kompatibel zu bleiben.<br />

131


KAPITEL 13. METADATENSTANDARDS<br />

Einige bek<strong>an</strong>nte MARC St<strong>an</strong>dards und <strong>der</strong>en Verwendung:<br />

• USMARC: nationaler MARC St<strong>an</strong>dard für die USA<br />

• CAN/MARC: nationaler MARC St<strong>an</strong>dard für C<strong>an</strong>ada<br />

• MARC 21: Harmonisation von USMARC und CAN/MARC<br />

• INTERMARC: MARC benutzt von <strong>der</strong> Bibliotheque nationale de Fr<strong>an</strong>ce<br />

• UNIMARC: (IFLA 1977), ozielles MARC in Fr<strong>an</strong>kreich<br />

IFLA = International Fe<strong>der</strong>ation of Library Associations<br />

• CMARC: nationaler MARC Std. <strong>der</strong> Volksrepublik China, basiert auf UNIMARC<br />

• DANMARC: nationaler MARC Std. in Dänemark, basiert auf MARC21<br />

• NORMARC: nationaler MARC Std. in Norwegen, basiert auf MARC21<br />

• BIBSYS-MARC: alle Norwegischen <strong>Uni</strong>-Bibliotheken, US National Library, alle US-College<br />

Bibliotheken, <strong>ein</strong>ige Forschungs<strong>ein</strong>richtungen<br />

Die St<strong>an</strong>dards USMARC und CAN/MARC sind dabei in den 80er Jahren aus dem ursprünglichen<br />

MARC St<strong>an</strong>dard hervorgeg<strong>an</strong>gen und wurden Ende <strong>der</strong> 90er zu MARC 21<br />

harmonisiert. MARC 21 ist wie<strong>der</strong>um die Basis für viele weitere nationale Vari<strong>an</strong>ten.<br />

Der MARC St<strong>an</strong>dard besteht aus mehreren nach Anwendungsgebiet getrennten Bereichen.<br />

Wichtig sind hier vor allem MARC 21 Format for Bibliographic Data und MARC<br />

21 Format for Authority Data. Ersterer ist dabei zuständig für konkrete Kataloge (best<strong>an</strong>d<br />

<strong>ein</strong>er Bibliothek) während <strong>der</strong> zweite Bereich konst<strong>an</strong>te Daten wie Autorennamen,<br />

Schlagwörter usw. enthält. Dieser Bereich steht üblicherweise unter authoroty Control,<br />

das heiÿt, es gibt <strong>ein</strong>e festgelegte Inst<strong>an</strong>z, die berechtigt ist, diese Daten zu än<strong>der</strong>n und<br />

zu erweitern, während <strong>an</strong><strong>der</strong>e die Daten nur nutzen. (In den USA ist diese Inst<strong>an</strong>z z.B.<br />

die LOC.) Dieses Verfahren hat den Vorteil, dass Autoreninformationen usw. innerhalb<br />

<strong>der</strong> g<strong>an</strong>zen Nutzergem<strong>ein</strong>schaft konsistent sind und Fehler vermieden werden können.<br />

Zudem gibt es noch Regelungen für die Än<strong>der</strong>ungen <strong>an</strong> MARC selbst. Sofern <strong>ein</strong>e Institution<br />

<strong>ein</strong>e Än<strong>der</strong>ung o<strong>der</strong> Erweiterung des MARC-Formates wünscht, muss sie sich <strong>an</strong><br />

das MARC St<strong>an</strong>dards Comitee wenden, welches d<strong>an</strong>n über die Eingabe berät und evtl.<br />

<strong>ein</strong> Update des MARC-St<strong>an</strong>dards ver<strong>an</strong>lasst. Dieser Prozess nimmt oft <strong>ein</strong>e längere Zeit<br />

in Anspruch.<br />

Als bibliographisches Format hat MARC <strong>ein</strong>ige hochgesteckte Anfor<strong>der</strong>ungen zu erfüllen.<br />

Es müssen alle Informationen die zuvor auf <strong>ein</strong>er üblichen Bibliotheks-Registerkarte<br />

Verwendung gefunden haben auch in MARC ausdrückbar s<strong>ein</strong>, und dies in <strong>ein</strong>er maschinenverarbeitbaren<br />

Form die, (m<strong>an</strong> bedenke hier, dass das Format in den 60er Jahre<br />

geschaen wurde) auÿerdem noch möglichst Speicherezienz s<strong>ein</strong> muss. MARC löst dies<br />

über Kombinationen von Tags, Indikatoren und Subelds die durch <strong>ein</strong>e Reihe von<br />

Zahlen und Son<strong>der</strong>zeichen ausgezeichnet werden.<br />

Ein Beispiel für <strong>ein</strong>e Publikation:<br />

132


13.2. METADATENSTANDARDS<br />

Listing 13.1: Beispiel: Publikation<br />

place of publication: New York<br />

name of publisher:<br />

Lothrop, Lee & Shepard Books<br />

date of publication: 1987<br />

Der entsprechende MARC-Record sähe d<strong>an</strong>n wie folgt aus:<br />

260 ## $a New York<br />

$b Lothrop, Lee & Shepard Books<br />

$c 1987<br />

Listing 13.2: Beispiel: MARC<br />

Wobei 260 das entsprechende Tag für <strong>ein</strong>e Publikation wäre, ## <strong>ein</strong> Platzhalter, da es<br />

k<strong>ein</strong>e Indikatoren für diesen Fall gibt und $a, $b, $c die dazugehörigen Subelds. So<br />

können Speicherezient auch mehrwertige Daten gespeichert werden und sind von <strong>ein</strong>em<br />

Katalogsystem leicht zu verstehen. Der Nachteil ist, dass m<strong>an</strong> als Mensch die Daten<br />

ohne Dokumentation und tiefgehendes bibliothekarisches Wissen nicht ohne weites Nutzen<br />

k<strong>an</strong>n. Ein Versuch diese Situation zu verbessern ist z.B. MODS (13.2.3).<br />

13.2.3. MARCXML und MODS<br />

MARCXML 4 und MODS 5 sind Tr<strong>an</strong>sformationen von MARC auf XML. Da XML sich als<br />

weitgehend als St<strong>an</strong>dard für die Übertragung und Speicherung von hierarchischen digitalen<br />

Daten durchgesetzt hat, wurden auch für das betagte MARC Format entsprechende<br />

Tr<strong>an</strong>sformationen entwickelt. Hier orientiert sich MARCXML sehr nah am originalen<br />

MARC während MODS eher <strong>ein</strong> echtes XML Format ist. Dies lässt sich am besten <strong>an</strong><br />

<strong>ein</strong>em Beispiel verdeutlichen.<br />

Listing 13.3: Beispiel: MARCXML<br />

<br />

<br />

<br />

01142cam 2200301 a 4500<br />

92005291 <br />

DLC<br />

19930521155141.9<br />

<br />

92005291 <br />

<br />

<br />

0152038655 :<br />

$15.95<br />

<br />

...<br />

<br />

<br />

4 http://www.loc.gov/st<strong>an</strong>dards/marcxml/<br />

5<br />

Metadata Object Description Schema - http://www.loc.gov/st<strong>an</strong>dards/mods/<br />

133


KAPITEL 13. METADATENSTANDARDS<br />

<br />


13.2. METADATENSTANDARDS<br />

Hier ist z. B. <strong>ein</strong> MARC-Record in <strong>ein</strong>en EAD-Record <strong>ein</strong>gebettet.<br />

Auch wenn EAD mit s<strong>ein</strong>er Struktur sehr exibel ist, wurde es trotzdem primär zum<br />

Austausch von Bibliotheksinformationen geschaen. Also zur Beschreibung von realen<br />

Büchern die in <strong>ein</strong>er Bibliothek in <strong>ein</strong>em Regal physisch vorh<strong>an</strong>den sind. Wenn es um<br />

Metadaten über digitale o<strong>der</strong> digitalisierte Informationen geht, eignet sich das METS<br />

Format im Allgem<strong>ein</strong>en eher.<br />

13.2.5. METS<br />

METS: Metadata Encoding <strong>an</strong>d Tr<strong>an</strong>smission St<strong>an</strong>dard<br />

The METS schema is a st<strong>an</strong>dard for encoding descriptive, administrative,<br />

<strong>an</strong>d structural metadata regarding objects within a digital library, expressed<br />

using the XML schema l<strong>an</strong>guage of the World Wide Web Consortium. The<br />

st<strong>an</strong>dard is maintained in the Network Development <strong>an</strong>d MARC St<strong>an</strong>dards<br />

Oce of the Library of Congress, <strong>an</strong>d is b<strong>ein</strong>g developed as <strong>an</strong> initiative of<br />

the Digital Library Fe<strong>der</strong>ation. [LOCb]<br />

METS wurde entwickelt, um die erweiterten Ansprüche <strong>an</strong> Metadaten zu erfüllen, die digitale<br />

Dokumente stellen. Digitale Dokumente bestehen nicht immer nur aus <strong>ein</strong>er <strong>ein</strong>zelnen<br />

Datei. Um aber komplexe Strukturen zusammenzuhalten sind die bestehenden Strukturen<br />

nicht geeignet, da sie immer von <strong>ein</strong>em Dokument als <strong>ein</strong>zelne Entität ausgehen.<br />

Auÿerdem bildet METS weitere Metadaten ab, die die Digitalisierung von Dokumenten<br />

betreen, z. B.:<br />

Originalquelle: Eine Referenz auf das zugrundeliegende Dokument <strong>der</strong> digitalen Fassung<br />

Verlässlichkeit: Ist die (online verfügbare) Quelle aktuell, zuverlässig,. . .<br />

Copyright: Das Copyright für Onlinedokumente hat oft <strong>an</strong><strong>der</strong>e Anfor<strong>der</strong>ungen<br />

. . .<br />

Ein Beispieldokument im METS Format ndet sich im Anh<strong>an</strong>g 13.4.1. Wie m<strong>an</strong> dort<br />

sieht, besteht <strong>ein</strong> METS Dokument aus mehreren Abschnitten. Wichtige Abschnitte sind<br />

z. B.:<br />

METS Hea<strong>der</strong>: Metadaten, die das METS Dokument <strong>an</strong> sich beschreiben, wie z.B. creator,<br />

editor, usw.<br />

Descriptive Metadata: Links zu beschreibenden Metadaten innerhalb und/o<strong>der</strong> auÿerhalb<br />

des METS Dokumentes. Beispielsweise <strong>ein</strong> MARC record o<strong>der</strong> <strong>ein</strong> EAD Quellverzeichnis<br />

auf <strong>ein</strong>em WWW-Server. (Multiple Inst<strong>an</strong>zen möglich).<br />

Administrative Metadata: Informationen darüber, wie die Dateien erstellt wurden, Urheberrechte,<br />

Angaben zur Originalquelle des digitalen Dokumentes, usw. Sowohl<br />

interne als auch externe Daten sind möglich.<br />

135


KAPITEL 13. METADATENSTANDARDS<br />

File Section: Liste <strong>der</strong> Dateien die das digitale Objekt ausmachen. Elemente<br />

können über gruppiert werden um die Struktur abzubilden.<br />

Structural Map: Das Herz des METS Dokumentes. Angaben über die hierarchische<br />

Struktur und Links zu Content und weiteren Metadaten.<br />

Structural Links: Die Strukturellen Links erlauben es Autoren von METS Dokumenten,<br />

Hyperlinks zwischen Strukturelementen zu denieren.<br />

Behavior: Die behavior section erlaubt es, Content im METS Dokument mit ausführbaren<br />

Verhalten zu verknüpfen. (Quasi <strong>ein</strong>e Art Script-Engine).<br />

METS ermöglicht somit über s<strong>ein</strong> exible Baust<strong>ein</strong>-artige Struktur den Austausch fast<br />

beliebiger Metadatensätze mit dem Zusatz, dass Informationen über die Digitalisierung<br />

sowie über den Zusammenh<strong>an</strong>g mehrerer Dateien die <strong>ein</strong> <strong>ein</strong>zelnes Dokument formen<br />

integriert werden können.<br />

13.2.6. OAI<br />

OAI sowie das OAI-PMH (Protocol for Metadata Harvesting) <strong>der</strong> OAI 6 ist k<strong>ein</strong> Metadatenst<strong>an</strong>dard<br />

im engeren Sinne son<strong>der</strong>n <strong>ein</strong> Protokoll zum Austausch von Metadaten<br />

über digitale Dokumente. OAI wurde entwickelt, um Autoren <strong>ein</strong>e möglichst reibungslose<br />

Zusammenarbeit in <strong>der</strong> Veröentlichung und Verbreitung von Information zu ermöglichen.<br />

OAI durchforstet Informationsdepots unter Verwendung von gem<strong>ein</strong>samen Metadatenst<strong>an</strong>dards.<br />

Wenn <strong>ein</strong> solcher Informationsspeicher diesem gem<strong>ein</strong>samen St<strong>an</strong>dard<br />

entspricht, k<strong>an</strong>n er Teil <strong>ein</strong>er gröÿeren Community werden und somit den Wert s<strong>ein</strong>es<br />

eigenen Depots und den <strong>der</strong> Gem<strong>ein</strong>schaft <strong>an</strong>heben. Derzeit beteiligen sich zum Beispiel<br />

die Digital Library Fe<strong>der</strong>ation, CrossRef und OCLC 7 rege <strong>an</strong> diesem Projekt.<br />

Um dies zu ermöglichen wird die Arbeit auf 2 Bereiche aufgeteilt:<br />

• Data Provi<strong>der</strong>s: Diese Teilnehmer machen ihre Daten über das OAI Protokoll erreichbar.<br />

• Service Provi<strong>der</strong>s: Dies sind jene Teilnehmer, welche die Metadaten von den verschiedenen<br />

Servern <strong>ein</strong>sammeln und zur Verfügung stellen.<br />

OAI selbst ist hierbei nur das Austauschformat und b<strong>ein</strong>haltet k<strong>ein</strong>e Metadaten in Bezug<br />

auf Dokumente, dafür k<strong>an</strong>n <strong>ein</strong> OAI Record mehrere Subelemente enthalten<br />

die jeweils <strong>ein</strong>en Metadatenblock in <strong>ein</strong>em <strong>fr</strong>ei denierbarem Format zu dem referenziertem<br />

Dokument enthalten. Hierbei ist das Vorh<strong>an</strong>dens<strong>ein</strong> des Formates oai_dc (Dublin<br />

Core, siehe Kap. 13.2.1 ) zwingend erfor<strong>der</strong>lich, um den bereits erwähnten kl<strong>ein</strong>sten gem<strong>ein</strong>samen<br />

Nenner zu erfüllen, <strong>der</strong> <strong>ein</strong>en Austausch <strong>der</strong> Metadaten zu jedem Zeitpunkt<br />

6<br />

Open Archive Initiative - http://www.openarchives.org<br />

7<br />

Online Computer Library Center http://www.oclc.org<br />

136


13.2. METADATENSTANDARDS<br />

gewährleistet. An<strong>fr</strong>agen <strong>an</strong> OAI-Repositories (Data-Provi<strong>der</strong>) werden über das etablierte<br />

HTTP-Protokoll durchgeführt. Dabei muss <strong>der</strong> Provi<strong>der</strong> sowohl GET als auch POST<br />

An<strong>fr</strong>agen unterstützen.<br />

Eine (beispielhafte) OAI-An<strong>fr</strong>age könnte z.B. so aussehen:<br />

Listing 13.6: Beispiel: OAI An<strong>fr</strong>age<br />

http://cs1.ist.psu.edu/cgi-bin/oai.cgi?verb=GetRecord&metadataPrefix=oai_dc&identifier=oai%3<br />

ACiteSeerPSU%3A2412<br />

(Eine An<strong>fr</strong>age nach <strong>ein</strong>em <strong>ein</strong>zelnen Record mit <strong>der</strong> ID oai:CiteSeerPSU:2412 und Metadaten<br />

im DC Format)<br />

Die entsprechende Antwort:<br />

Listing 13.7: Beispiel: OAI Antwort<br />

<br />

<br />

2006-04-17T00:18:39Z<br />

http://cs1.ist.psu.<br />

edu/cgi-bin/oai.cgi<br />

<br />

<br />

<br />

oai:CiteSeerPSU:2412<br />

1999-02-12<br />

CiteSeerPSUset<br />

<br />

<br />

<br />

Dynamic Staffing In A Telephone Call Center Aiming To Immediately Answer All Calls<br />

Ward Whitt<br />

Ward Whitt Dynamic Staffing In A Telephone Call Center Aiming To Immediately Answer All<br />

Calls<br />

This paper proposes modeling <strong>an</strong>d <strong>an</strong>alysis methods to facilitate dynamic staffing in<br />

a telephone<br />

call center...<br />

The Pennsylv<strong>an</strong>ia State <strong>Uni</strong>versity CiteSeer Archives<br />

unknown<br />

1999-02-12<br />

ps<br />

http://citeseer.ist.psu.edu/2412.html<br />

http://www.research.att.com/library/trs/./TRs/98/98.34/98.34.1.body.ps<br />

en<br />

oai:CiteSeerPSU:405726<br />

oai:CiteSeerPSU:403464<br />

unrestricted<br />

<br />

<br />

<br />

<br />

<br />

Hier ist sehr gut zu erkennen, dass <strong>der</strong> OAI-Record <strong>an</strong> sich ausschlieÿlich Daten zur<br />

137


KAPITEL 13. METADATENSTANDARDS<br />

Speicherung im Online-Repository enthält, während <strong>der</strong> DC-Datensatz innerhalb von<br />

liegt.<br />

13.3. Fazit<br />

Die heutige Informationsut ist ohne strukturierende Metadaten über die verfügbaren<br />

Dokumente kaum zu bewältigen. Doch auch Anhäufungen von Metadaten <strong>an</strong> sich schaffen<br />

hier nicht ohne weites Abhilfe. Diese Metadaten müssen unter<strong>ein</strong><strong>an</strong><strong>der</strong> vergleichbar,<br />

kombinierbar und vor allem zwischen verschiedenen Katalogen au tauschbar s<strong>ein</strong>. Um<br />

Dies zu ermöglichen müssen Metadaten in <strong>ein</strong>em st<strong>an</strong>dardisiertem Format vorliegen. Im<br />

laufe <strong>der</strong> Zeit sind so <strong>ein</strong>ige St<strong>an</strong>dards geschaen worden, die, durch Gremien kontrolliert,<br />

<strong>ein</strong>e Grundlage für die interoperable Speicherung von Metadaten bieten. Selbstverständlich<br />

ist es nicht möglich, alle Anfor<strong>der</strong>ungen <strong>an</strong> Metadaten in <strong>ein</strong>em <strong>ein</strong>zelnen St<strong>an</strong>dard<br />

unterzubringen, dennoch decken die bestehenden Initiativen gröÿtmögliche Bereiche im<br />

bibliothekarischen Bereich (MARC, MODS) o<strong>der</strong> im Datenaustausch (METS, EAD, OAI)<br />

ab, so dass <strong>ein</strong>ige wenige gut durchdachte Formate für viele Anfor<strong>der</strong>ungen ausreichen.<br />

Mit dem <strong>Uni</strong>versalformat Dublin Core gibt es sogar <strong>ein</strong>e Grundstruktur, die zumindest<br />

die wichtigsten Informationen zu (fast) jedem digital verfügbaren Objekt vorhalten k<strong>an</strong>n.<br />

Diese Arbeit von Initiativen wie den St<strong>an</strong>dards-Comitees des LOC o<strong>der</strong> <strong>der</strong> DMCI macht<br />

es heute möglich, riesige Bestände <strong>an</strong> (wissenschaftlich relev<strong>an</strong>ten) Informationen Weltweit<br />

zu identizieren, zu nutzen und auszuwerten.<br />

13.4. Anh<strong>an</strong>g<br />

13.4.1. METS Beispiel<br />

Listing 13.8: Beispiel: METS Record<br />

<br />

Since the intended use of these file is internal (i.e. not for<br />

distribution to other digital libraries) local numbers are used<br />

for xlink:href values which correspond to the local digital<br />

repository's id numbers. These numbers would be tr<strong>an</strong>slated into<br />

proper URIs for distribution beyond Harvard.<br />

<br />

138


13.4. ANHANG<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Reports of the president <strong>an</strong>d treasurer for..., 1912-1914. [Title page]<br />

<br />

<br />

Radcliffe College<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

139


KAPITEL 13. METADATENSTANDARDS<br />

<br />

<br />

<br />

140


Teil II.<br />

Ergebnisdokumente <strong>der</strong><br />

Softwareentwicklung<br />

141


14. Bewertung von bestehenden<br />

<strong>Bibliotheksdienste</strong>n<br />

Die Projektgruppe hat <strong>ein</strong>en Kriterienkatalog erstellt, mit dem die Internet<strong>an</strong>gebote von<br />

vier Bibliotheken bewertet wurden:<br />

1. Bibliotheks- und Informationssystem <strong>der</strong> <strong>Uni</strong>versität <strong>Oldenburg</strong> BIS<br />

(http://www.bis.uni-oldenburg.de)<br />

2. Nie<strong>der</strong>sächsische Staats- und <strong>Uni</strong>versitätsbibliothek Göttingen SUB<br />

(http://www.sub.uni-goettingen.de)<br />

3. Gem<strong>ein</strong>samer Bibliotheksverbund <strong>der</strong> Län<strong>der</strong> Bremen, Hamburg, Mecklenburg-Vorpommern,<br />

Nie<strong>der</strong>sachsen, Sachsen-Anhalt, Schleswig-Holst<strong>ein</strong>, Thüringen und <strong>der</strong><br />

Stiftung Preussischer Kulturbesitz GBV<br />

(http://www.gbv.de)<br />

4. Technische Informationsbibliothek / <strong>Uni</strong>versitätsbibliothek H<strong>an</strong>nover TIB<br />

(http://www.tib.uni-h<strong>an</strong>nover.de)<br />

Der Kriterienkatalog ist in die fünf Teilbereiche St<strong>an</strong>dardfunktionalität, Strukturdarstellung,<br />

Suchfunktion, Suchmaske und Ergebnispräsentation unterteilt. Zu jedem Teilbereich<br />

sind Kriterien deniert. Jedes Kriterium wird mit <strong>ein</strong>em Wert von 1-5 bewertet. Auÿerdem<br />

gibt es zu jedem Kriterium <strong>ein</strong>e Gewichtung von 1-5 (1 ist jeweils <strong>der</strong> schlechteste<br />

und 5 <strong>der</strong> beste Wert). Die Gewichtung gibt <strong>an</strong>, welchen Stellenwert die Projektgruppe<br />

<strong>ein</strong>er bestimmten Funktion in <strong>ein</strong>em Bibliotheksdienst <strong>ein</strong>räumt.<br />

Die Bewertung wurde von den 12 PG-Mitglie<strong>der</strong>n <strong>an</strong>h<strong>an</strong>d des Kriterienkataloges vorgenommen.<br />

Die hier präsentierten Ergebnisse sind die Durchschnittswerte aus allen Einzelergebnissen.<br />

Die Gewichtung wurde bei dieser Berechnung nicht berücksichtigt. Der<br />

Durchschnittswert ist d<strong>an</strong>n die Summe <strong>der</strong> Einzelergebnisse geteilt durch 12.<br />

In diesem Dokument werden die <strong>ein</strong>zelnen Teilbereiche mit den entsprechenden Kriterien<br />

vorgestellt und das Ergebnis <strong>der</strong> Bewertung <strong>an</strong>alysiert. Ziel <strong>der</strong> Analyse ist es Stärken und<br />

Schwächen des BIS zu ermitteln und dadurch Verbesserungsmöglichkeiten zu nden. Da<br />

sich die drei <strong>an</strong><strong>der</strong>en <strong>Bibliotheksdienste</strong> in vielen Bereichen ähneln liegen die Bewertungen<br />

oft sehr dicht zusammen.<br />

143


KAPITEL 14. BEWERTUNG VON BESTEHENDEN BIBLIOTHEKSDIENSTEN<br />

14.1. St<strong>an</strong>dardfunktionalität<br />

Die St<strong>an</strong>dardfunktionalität beschreibt die Basisfunktionen, die je<strong>der</strong> Bibliotheksdienst<br />

<strong>an</strong>bieten sollte. Das lässt sich auch <strong>an</strong> <strong>der</strong> Gewichtung ablesen. Nur die Ausleihe aus digitalen<br />

Bibliotheken hat nicht die höchste Gewichtung, liegt aber mit dem Wert 4 immer<br />

noch im oberen Bereich. Die Ergebnisse liegen alle zwischen 1,67 und 3,67. Damit ist<br />

die Umsetzung <strong>der</strong> Basisfunktionen in den untersuchten Bibliotheken bestenfalls be<strong>fr</strong>iedigend/gut.<br />

Das BIS erzielt bei Verlängerung, Vorbestellung und Benutzerkonto das beste<br />

Ergebnis. Bei <strong>der</strong> Suche ähneln sich die Bewertungen, alle Durchschnittswerte betragen<br />

ca. 3. Dezite hat das BIS allerdings in <strong>der</strong> Bereichen Ausleihe aus digitalen Bibliotheken<br />

und Online-Hilfe.<br />

14.1.1. Ausleihe<br />

Beschreibung:<br />

Diese Funktion ermöglicht es dem Benutzer elektronische Medien (z.B. E-Books, Filme,<br />

Tonträger) online auszuleihen.<br />

Ergebnis:<br />

Das BIS erzielt bei diesem Kriterium mit 1,67 das schlechteste Ergebnis. Die <strong>an</strong><strong>der</strong>en<br />

Bibl. sind aber auch bestenfalls be<strong>fr</strong>iedigend (2,33-2,75).<br />

Analyse:<br />

Beim BIS ist die Ausleihe von elektronischen Medien nicht integriert, son<strong>der</strong>n es wird<br />

lediglich mit externen Anbietern verlinkt.<br />

14.1.2. Verlängerung<br />

Beschreibung:<br />

Der Benutzer k<strong>an</strong>n mit dieser Funktion ausgeliehene Medien verlängern. Dazu gehört<br />

natürlich auch das Rückgängig machen von fälschlicherweise gemachten Verlängerungen.<br />

Ergebnis:<br />

Bei <strong>der</strong> Verlängerung erzielt das BIS mit 3,08 <strong>ein</strong> gutes Ergebnis. Die restlichen Bibl.<br />

sind wesentlich schlechter mit ausreichend bewertet worden. Die Bewertung <strong>der</strong> Verlängerungsfunktion<br />

war aber als nicht registrierter Benutzer auch schwierig.<br />

Analyse:<br />

Die Verlängerungsfunktion im BIS ist gut umgesetzt. Der Benutzer meldet sich <strong>an</strong> s<strong>ein</strong>em<br />

Benutzerkonto <strong>an</strong> und k<strong>an</strong>n d<strong>an</strong>n die Ausleih<strong>fr</strong>isten verlängern. Lei<strong>der</strong> k<strong>an</strong>n m<strong>an</strong> aber k<strong>ein</strong>e<br />

<strong>ein</strong>zelnen Titel auswählen. Die <strong>ein</strong>zige Möglichkeit zur Dierenzierung besteht darin<br />

alle Titel ohne Fernleihen, alle Titel mit Fernleihen o<strong>der</strong> nur die Fernleihen zu verlängern.<br />

Komfortabel ist dagegen die Option sich nach erfolgter Fristverlängerung <strong>ein</strong>e Übersicht<br />

per E-Mail schicken zu lassen. Die Verlängerungsfunktion im BIS ist gut umgesetzt. Der<br />

Benutzer meldet sich <strong>an</strong> s<strong>ein</strong>em Benutzerkonto <strong>an</strong> und k<strong>an</strong>n d<strong>an</strong>n die Ausleih<strong>fr</strong>isten verlängern.<br />

Lei<strong>der</strong> k<strong>an</strong>n m<strong>an</strong> aber k<strong>ein</strong>e <strong>ein</strong>zelnen Titel auswählen. Die <strong>ein</strong>zige Möglichkeit<br />

zur Dierenzierung besteht darin alle Titel ohne Fernleihen, alle Titel mit Fernleihen o<strong>der</strong><br />

144


14.1. STANDARDFUNKTIONALITÄT<br />

nur die Fernleihen zu verlängern. Komfortabel ist dagegen die Option sich nach erfolgter<br />

Fristverlängerung <strong>ein</strong>e Übersicht per E-Mail schicken zu lassen.<br />

14.1.3. Vorbestellung<br />

Beschreibung:<br />

Mit <strong>der</strong> Vorbestellung können ausgeliehene Werke vorbestellt werden. Es sollte auch möglich<br />

s<strong>ein</strong> <strong>ein</strong>e Vorbestellung wie<strong>der</strong> rückgängig zu machen.<br />

Ergebnis:<br />

Die Vorbestellung ist beim BIS am besten gelöst (3,67). M<strong>an</strong> k<strong>an</strong>n ausgeliehene Werke<br />

vormerken, <strong>ein</strong>e Übersicht vorgemerkter Werke <strong>ein</strong>sehen und Vormerkungen löschen. Der<br />

GBV erzielt mit 2,83 den schlechtesten Wert. SUB (3,17) und TIB (3,42) sind auch be<strong>fr</strong>iedigend/gut.<br />

Auch bei dieser Funktion war die Bewertung ohne Benutzerausweis schwierig.<br />

Analyse:<br />

Wenn <strong>ein</strong> Werk ausgeliehen ist k<strong>an</strong>n sich <strong>der</strong> Benutzer über <strong>ein</strong>en Link den Dialog für die<br />

Vorbestellung <strong>an</strong>zeigen lassen. Dort erfährt er den St<strong>an</strong>dort, wie l<strong>an</strong>ge das Werk ausgeliehen<br />

ist und wieviele Vormerkungen vorliegen. Für die Vormerkung sind Benutzernummer<br />

und Passwort nötig. Wenn <strong>der</strong> Benutzer in s<strong>ein</strong>em Benutzerkonto <strong>ein</strong>e E-Mail Adresse <strong>ein</strong>getragen<br />

hat, wird er beim Vorliegen des Werkes automatisch benachrichtigt. Es besteht<br />

auch die Option für <strong>ein</strong>e kostenpichtige schriftliche Benachrichtigung.<br />

14.1.4. Suche<br />

Beschreibung:<br />

Die Suche ist wohl die elementarste Funktion, die <strong>ein</strong> Benutzer von <strong>ein</strong>em Bibliotheksdienst<br />

erwartet. Die <strong>ein</strong>zelnen Suchfunktionen und die Suchmaske werden deshalb weiter<br />

unten noch detaillierter beh<strong>an</strong>delt. Hier ist mit Suche <strong>ein</strong>fach nur das Angebot <strong>der</strong> Suchfunktion<br />

gem<strong>ein</strong>t.<br />

Ergebnis:<br />

Alle untersuchten Bibl. haben <strong>ein</strong> Ergebnis zwischen 3 und 3,42 erzielt und verfügen damit<br />

über <strong>ein</strong>e be<strong>fr</strong>iedigende bis gute Suchfunktion. Am schlechtesten hat das BIS mit <strong>ein</strong>er 3<br />

abgeschnitten. Die <strong>an</strong><strong>der</strong>en drei K<strong>an</strong>didaten liegen um 3,4.<br />

Analyse:<br />

Das BIS verfügt über <strong>ein</strong>e <strong>ein</strong>fache und <strong>ein</strong>e erweiterte Suche. Es besteht <strong>an</strong> <strong>ein</strong>igen<br />

Punkten die Möglichkeit die Suchfunktion zu verbessern. Die <strong>ein</strong>zelnen Punkte werden<br />

im weiteren Verlauf detailliert beh<strong>an</strong>delt.<br />

14.1.5. Online-Hilfe<br />

Beschreibung:<br />

Je<strong>der</strong> Bibliotheksdienst sollte über <strong>ein</strong>e Online-Hilfe verfügen, die es <strong>ein</strong>em unerfahrenen<br />

Benutzer ermöglicht alle <strong>an</strong>gebotenen Funktionen zu nden und zu nutzen. Unter Hilfe<br />

sind Hilfeseiten, Assistenten/Wizards und Tool-Tipps zu verstehen. Eine gute Online-Hilfe<br />

145


KAPITEL 14. BEWERTUNG VON BESTEHENDEN BIBLIOTHEKSDIENSTEN<br />

sollte auch nicht nur in deutscher Sprache son<strong>der</strong>n zumindest auch in englisch verfügbar<br />

s<strong>ein</strong>.<br />

Ergebnis:<br />

Die schlechteste Online-Hilfe ist im BIS zu nden. Die Note 2,33 ist gerade so ausreichend.<br />

Alle <strong>an</strong><strong>der</strong>en Hilfefunktionen liegen ungefähr bei 3. Die beste Online-Hilfe hat das SUB<br />

(3,33).<br />

Analyse:<br />

Im BIS sucht m<strong>an</strong> das Wort Hilfe vergeblich, geschweige denn mehrsprachige Hilfetexte.<br />

Die Hilfefunktion ist <strong>ein</strong>er <strong>der</strong> Hauptschwachpunkte des BIS. Es besteht allerdings die<br />

Möglichkeit Fragen <strong>an</strong> <strong>ein</strong>en Mitarbeiter des BIS zu stellen (BIS.LiveInfo). Lei<strong>der</strong> ist<br />

dieser Service allerdings nur Montags - Freitags zwischen 10 - 16 Uhr zu benutzen. Aber<br />

d<strong>an</strong>n bestimmt mehrsprachig !?!<br />

14.1.6. Benutzerkonto<br />

Beschreibung:<br />

In <strong>ein</strong>em Benutzerkonto sind persönliche Daten des Benutzers hinterlegt. Unter persönlichen<br />

Daten sind zum <strong>ein</strong>en Anschrift und E-Mail zu verstehen, zum <strong>an</strong><strong>der</strong>en gehören<br />

dazu auch die aktuellen Ausleihen, Vormerkungen, Verlängerungen und Fernleihen. Auch<br />

<strong>ein</strong> Gebührenkonto/Bezahlsystem mit <strong>ein</strong>er Übersicht <strong>der</strong> Gebühren für Mahnungen o<strong>der</strong><br />

Fernleihen könnte unter <strong>ein</strong>em Benutzerkonto zu nden s<strong>ein</strong>. Der Benutzer sollte s<strong>ein</strong>e<br />

persönlichen Daten selbst pegen können (z.B. bei <strong>ein</strong>em Adresswechsel). In <strong>ein</strong>em Benutzerkonto<br />

können auch Benutzerprole gespeichert s<strong>ein</strong>. Der Benutzer k<strong>an</strong>n sich so <strong>ein</strong><br />

Prol <strong>an</strong>legen, das später bei <strong>an</strong><strong>der</strong>en Funktionen benutzt wird (z.B. bekommt die Pro-<br />

lgruppe Informatik bei <strong>ein</strong>er Suche auch nur Ergebnisse aus diesem Bereich <strong>an</strong>gezeigt).<br />

Ergebnis:<br />

K<strong>ein</strong>e <strong>der</strong> Bibl. hat das Benutzerkonto beson<strong>der</strong>s gut umgesetzt. Die Ergebnisse sind bestenfalls<br />

be<strong>fr</strong>iedigend. Das BIS erzielt mit 2,92 das beste Ergebnis. Die <strong>an</strong><strong>der</strong>en Bibl. sind<br />

nur leicht schlechter. Am schlechtesten schneidet <strong>der</strong> GBV ab (2,33). Ohne <strong>ein</strong>getragener<br />

Benutzer <strong>der</strong> jeweiligen Bibliothek zu s<strong>ein</strong>, war <strong>ein</strong>e Bewertung allerdings schwierig.<br />

Analyse:<br />

Das Benutzerkonto ist zuerst <strong>ein</strong>mal schwierig zu nden. Der Link trägt den nicht g<strong>an</strong>z<br />

<strong>ein</strong>deutigen Namen Kontoab<strong>fr</strong>age. Sehr gut ist die Möglichkeit <strong>der</strong> verschlüsselten Verbindung<br />

(SSL). Das Benutzerkonto ist unübersichtlich gestaltet. Im ersten Dialog muss<br />

<strong>der</strong> Benutzer auswählen, welche Funktion er nutzen will. Wieso k<strong>an</strong>n hier nicht schon <strong>ein</strong>e<br />

Übersicht <strong>der</strong> ausgeliehenen und vorbestellten Werke stehen? Als Funktionen stellt das<br />

Benutzerkonto die Konto<strong>an</strong>zeige und Fristverlängerung (getrennt nach <strong>Uni</strong>- und L<strong>an</strong>des-<br />

Bibliothek), die Adressän<strong>der</strong>ung und <strong>ein</strong>e Magazinbestellung in <strong>der</strong> L<strong>an</strong>desbibliothek zur<br />

Verfügung. Der Benutzer k<strong>an</strong>n auÿerdem s<strong>ein</strong>e E-Mail Adresse editieren und aktivieren/-<br />

deaktivieren. Benutzerprole werden nicht verwendet.<br />

146


14.2. STRUKTURDARSTELLUNG<br />

14.2. Strukturdarstellung<br />

Zur Strukturdarstellung gehören 4 Kriterien. Die Mahnungsverwaltung/Benachrichtigungsfunktion<br />

ist mit <strong>ein</strong>er 4 gewichtet. Für alle <strong>an</strong><strong>der</strong>en Kriterien wurde als Gewichtung 5<br />

festgelegt. Die Bewertungen liegen zwischen 1,75 und 3,58. Damit gibt es auch bei <strong>der</strong><br />

Strukturdarstellung k<strong>ein</strong>e sehr guten Ergebnisse. Das BIS belegt jeweils zweimal den besten<br />

(Mahnungsverwaltung, Trennung von eigenen und <strong>fr</strong>emden Inhalten) und zweimal<br />

den schlechtesten R<strong>an</strong>g (Fernleihe, Ergonomie).<br />

14.2.1. Mahnungsverwaltung / Benachrichtigungsfunktion<br />

Beschreibung:<br />

Mit diesem Kriterium ist <strong>ein</strong>e Funktion zur Benachrichtigung des Benutzers gem<strong>ein</strong>t, wenn<br />

dieser Gefahr läuft <strong>ein</strong>en Ausleihzeitraum zu überschreiten bzw. schon überschritten hat.<br />

Diese Benachrichtigung k<strong>an</strong>n entwe<strong>der</strong> über E-Mail o<strong>der</strong> mit <strong>der</strong> Post erfolgen.<br />

Ergebnis:<br />

Das BIS erzielt hier mit 2,17 den besten Wert. Die <strong>an</strong><strong>der</strong>en Bibl. sind leicht schlechter. Am<br />

Schlechtesten haben GBV und TIB abgeschnitten (1,75). Die Benachrichtigungsfunktion<br />

ist damit bei allen K<strong>an</strong>didaten nicht besser als ausreichend.<br />

Analyse:<br />

Wenn <strong>der</strong> Benutzer in s<strong>ein</strong>em Benutzerkonto <strong>ein</strong>e E-Mail Adresse <strong>ein</strong>getragen hat, bekommt<br />

er im Fall <strong>der</strong> Überschreitung <strong>der</strong> Leih<strong>fr</strong>ist <strong>ein</strong>e Nachricht. Wenn im System k<strong>ein</strong>e<br />

E-Mail Adresse gespeichert ist, wird <strong>der</strong> Benutzer schriftlich benachrichtigt.<br />

14.2.2. Fernleihe (Vorbereitung)<br />

Beschreibung:<br />

Bei <strong>ein</strong>er Fernleihe will <strong>der</strong> Benutzer <strong>ein</strong> Werk ausleihen, das nicht im lokalen Bibliotheksbest<strong>an</strong>d<br />

verfügbar ist. Deshalb muss das Werk von <strong>der</strong> Heimatbibliothek des Benutzers<br />

bei <strong>ein</strong>er <strong>an</strong><strong>der</strong>en Bibliothek bestellt und ausgeliehen werden. Der Benutzer muss das bestellte<br />

Werk d<strong>an</strong>n in s<strong>ein</strong>er Heimatbibliothek abholen. Die Funktion Fernleihe ermöglicht<br />

es dem Benutzer von s<strong>ein</strong>em Heimatbibliotheksdienst aus diese Bestellung aufzugeben.<br />

Der Benutzer sollte dabei <strong>an</strong>geben können wie er benachrichtigt werden will und wo er<br />

den Titel abholt. Da die Fernleihe in <strong>der</strong> Regel nicht kostenlos ist, muss ausserdem die<br />

Bezahlung geregelt werden.<br />

Ergebnis:<br />

Mit 2,5 erzielt das BIS das schlechteste Ergebnis. Nur wenig besser ist <strong>der</strong> SUB (2,83).<br />

Am Besten schneidet <strong>der</strong> GBV mit 3,58 ab.<br />

Analyse:<br />

Die Fernleihe ist nicht in das BIS integriert. Der Benutzer k<strong>an</strong>n aber den GBV für <strong>ein</strong>e<br />

Fernleihe nutzen. Dazu wird vom BIS aus verlinkt. Das Bezahlsystem für die Fernleihe ist<br />

im BIS sehr umständlich gelöst und auch nicht <strong>ein</strong>deutig erklärt. Es gibt zwei Möglichkeiten<br />

die Fernleihgebühren zu entrichten. Entwe<strong>der</strong> m<strong>an</strong> kauft in <strong>der</strong> Zentralbibliothek<br />

147


KAPITEL 14. BEWERTUNG VON BESTEHENDEN BIBLIOTHEKSDIENSTEN<br />

Wertcoupons mit Zug<strong>an</strong>gsnummer und Passwort, o<strong>der</strong> m<strong>an</strong> bestellt per E-Mail Pincodes,<br />

die allerdings auch vor Ort bezahlt werden müssen. Wenn die bestellten Werke <strong>ein</strong>getroen<br />

sind, wird <strong>ein</strong> Vermerk im Benutzerkonto <strong>an</strong>gezeigt und bei aktivierter E-Mail<br />

Adresse <strong>ein</strong>e Nachricht geschickt. Den Ort für die Zustellung/Abholung k<strong>an</strong>n <strong>der</strong> Benutzer<br />

in s<strong>ein</strong>em Benutzerkonto <strong>ein</strong>stellen. Diese Option ist allerdings auch schwer zu nden.<br />

Dazu muss m<strong>an</strong> zuerst die Konto<strong>an</strong>zeige önen und ndet dort den Link persönliche<br />

Einstellungen.<br />

14.2.3. Logische und räumliche Trennung von eigenen und<br />

<strong>fr</strong>emden Inhalten<br />

Beschreibung:<br />

Dieses Kriterium beschreibt wie eigene Inhalte von <strong>fr</strong>emden Angeboten abgegrenzt sind.<br />

Es sollte z.B. nicht <strong>ein</strong>fach auf <strong>fr</strong>emde Inhalte verlinkt werden, ohne dies dem Benutzer<br />

vorher deutlich <strong>an</strong>zuzeigen.<br />

Ergebnis:<br />

BIS und SUB trennen eigene und <strong>fr</strong>emde Inhalte am Besten (3,08). Etwas schlechter<br />

schneiden TIB (2,92) und GBV (2,67) ab.<br />

Analyse:<br />

Im BIS sind externe Links auch als solche gekennzeichnet und Ziel des Links wird <strong>an</strong>gegeben.<br />

14.2.4. Ergonomie<br />

Beschreibung:<br />

Mit diesem Kriterium soll erfasst werden, wie die Bibliothekdienste software-ergonomische<br />

Gestaltungskriterien erfüllen. Dazu gehören Dialoggestaltung (Dialogführung, Strukturierung,<br />

Orientierung, Navigation) und E/A-Gestaltung (Gestaltung, Farben, Darstellung).<br />

Bei <strong>der</strong> Bewertung haben wir uns nicht explizit <strong>an</strong> die DIN gehalten. Der Vollständigkeit<br />

halber hier aber <strong>ein</strong>e Liste <strong>der</strong> wichtigsten St<strong>an</strong>dards:<br />

1. EN ISO 9241-11 (Gebrauchstauglichkeit)<br />

2. EN ISO 9241-16:1999, EN ISO 9241-14:1997, EN ISO 9241-15:1997, EN ISO 9241-<br />

17:1998 (Dialogführung)<br />

3. EN ISO 9241-10, EN ISO 14915-1:2000 (Dialoggestaltung)<br />

4. EN ISO 9241-8:1998 (Farbgestaltung)<br />

Zu <strong>ein</strong>er ergonomischen Lösung sollte auch das Angebot <strong>der</strong> Inhalte in englischer Sprache<br />

gehören.<br />

Ergebnis:<br />

Das BIS schneidet mit 2,67 am schlechtesten ab. Der GBV ist mit 2,75 auch nur leicht<br />

besser. Am besten erfüllen SUB (3,25) und TIB (3,33) das Ergonomie-Kriterium.<br />

148


14.3. SUCHFUNKTION<br />

Analyse:<br />

Die Benutzer<strong>fr</strong>eundlichkeit im BIS lässt sich <strong>an</strong> <strong>ein</strong>igen Stellen verbessern. Beispielhaft für<br />

die schlechte Navigation ist <strong>der</strong> Start <strong>ein</strong>er Suche im Best<strong>an</strong>d <strong>der</strong> <strong>Uni</strong>versitätsbibliothek.<br />

Auf <strong>der</strong> Startseite des BIS ndet sich die Bezeichnung Suche nur in Interne-Suche.<br />

Die Internet-Suche führt aber aber ins WWW (Google, etc.) und nicht in den lokalen<br />

Best<strong>an</strong>d <strong>der</strong> Bibliothek. Wenn <strong>der</strong> ungeübte Benutzer d<strong>an</strong>n gemerkt hat, dass er hier<br />

falsch ist, kehrt er auf die Startseite zurück und ihm sticht hoentlich das in groÿer blauer<br />

Schrift geschriebene Wort Kataloge ins Auge (warum unter <strong>der</strong> Überschrift Kataloge <strong>der</strong><br />

Punkt Verlängerung/Kontoab<strong>fr</strong>age steht, ist mir auch nicht g<strong>an</strong>z klar). Weitere drei<br />

Mausklicks später ist er bei <strong>der</strong> Suchmaske <strong>an</strong>gel<strong>an</strong>gt. Hätte <strong>der</strong> Benutzer allerdings den<br />

in kl<strong>ein</strong>er Schrift <strong>an</strong>gezeigten Link im Menu auf <strong>der</strong> linken Seite gesehen, wäre er mit <strong>ein</strong>em<br />

Mausklick da gewesen. Es gibt mehrere Links, die entwe<strong>der</strong> den gleichen Namen tragen<br />

und <strong>an</strong> verschiedene Ziele führen (z.B. gibt es auch unter Internet-Suche noch <strong>ein</strong>en<br />

Link Kataloge, <strong>der</strong> wie<strong>der</strong> wo<strong>an</strong><strong>der</strong>s hinführt), o<strong>der</strong> aber unterschiedliche Namen tragen<br />

und <strong>an</strong> das gleiche Ziel führen (z.B. Kontoab<strong>fr</strong>age und Benutzungskonto). Verwirrend ist<br />

auch, das das Farbschema des ORBIS völlig <strong>an</strong><strong>der</strong>s ist, als das Farbschema des BIS.<br />

Benutzer, die <strong>der</strong> deutschen Sprache nicht mächtig sind, haben mit den Internetseiten<br />

des BIS Probleme. Unter dem Link Englisch-Pages sind zwar allgem<strong>ein</strong>e Informationen<br />

auf Englisch zu nden und sogar Links mit englischen Bezeichnern. Die Linkziele (z.B.<br />

ORBIS) sind d<strong>an</strong>n allerdings wie<strong>der</strong> nur auf deutsch.<br />

14.3. Suchfunktion<br />

Zur Suchfunktion gehören 8 Kriterien. Die Einzelkriterien sind nochmals unterteilt in Art<br />

<strong>der</strong> Suche, Suchraum und Medientyp. Die Ergebnisse liegen zwischen 1,67 und 4,25. Das<br />

BIS erzielt zweimal die beste Wertung (Websuche, Medientyp Inhaltlich) und viermal die<br />

Schlechteste (Explorative Suche, Globaler Suchraum, Suchkriterien, Medientyp Formal).<br />

Die Suchmaske und die Suche im lokalen Best<strong>an</strong>d liegen im Mittelfeld. Bei <strong>der</strong> Suchfunktion<br />

wurden teilweise sehr gute Ergebnisse erzielt. SUB und TIB verfügen über <strong>ein</strong>e sehr<br />

gute Funktion zur Beschränkung <strong>der</strong> Suche auf den eigenen Literaturbest<strong>an</strong>d. Ausserdem<br />

ist die Suche nach bestimmten Formaten bei SUB, GBV und TIB aussergewöhnlich gut.<br />

Der explorativen Suche und <strong>der</strong> Möglichkeit zur Websuche wurde k<strong>ein</strong>e groÿe Relev<strong>an</strong>z<br />

<strong>ein</strong>geräumt. Die Gewichtung liegt hier bei 2 bzw. 1. Alle <strong>an</strong><strong>der</strong>en Kriterien sind mit 5<br />

gewichtet. Die Art <strong>der</strong> Suche ist in drei Bereiche unterteilt: Die explorative Suche, die<br />

Suche über <strong>ein</strong>e Suchmaske und die Suche im WWW.<br />

14.3.1. Explorative Suche<br />

Beschreibung:<br />

Bei <strong>ein</strong>er explorativen Suche ist das eigentliche Suchziel noch unbek<strong>an</strong>nt. Die Teilergebnisse<br />

be<strong>ein</strong>ussen den Suchverlauf. Dabei sucht <strong>der</strong> Benutzer <strong>ein</strong>en Beitrag aus <strong>ein</strong>em<br />

Themenbereich (z.B. Genetik) und im Verlauf <strong>der</strong> Suche wird das Suchergebnis immer<br />

mehr <strong>ein</strong>gegrenzt (am Ende <strong>der</strong> Suche entscheidet sich <strong>der</strong> Benutzer evtl. für <strong>ein</strong> Buch<br />

149


KAPITEL 14. BEWERTUNG VON BESTEHENDEN BIBLIOTHEKSDIENSTEN<br />

über genetische Suchalgorithmen). Die explorative Suche wurde nur mit 2 gewichtet.<br />

Ergebnis:<br />

Die Möglichkeit <strong>der</strong> explorativen Suche ist bei k<strong>ein</strong>em K<strong>an</strong>didaten beson<strong>der</strong>s gut umgesetzt.<br />

Am besten bieten SUB und TIB diese Funktion <strong>an</strong> (2,5). Der GBV erzielt <strong>ein</strong>en<br />

ähnlichen Wert. Das BIS erhält nur 1,75 Punkte und schneidet am schlechtesten ab.<br />

Analyse:<br />

Beim BIS ist k<strong>ein</strong>e explorative Suche möglich.<br />

14.3.2. Suchmaske<br />

Beschreibung:<br />

Die Suchmaske ist <strong>ein</strong>e elementare Funktion in <strong>ein</strong>em Bibliotheksdienst. Dem Benutzer<br />

sollten zwei Suchmasken <strong>an</strong>geboten werden. Einerseits <strong>ein</strong>e <strong>ein</strong>fache Suchmaske nur mit<br />

den wichtigsten Suchparametern für schnelle Ab<strong>fr</strong>agen und <strong>an</strong><strong>der</strong>erseits <strong>ein</strong>e erweiterte<br />

Suchmaske mit zahlreichen Suchparametern für komplexe Such<strong>an</strong><strong>fr</strong>agen.<br />

Ergebnis:<br />

Alle untersuchten Bibl. sind mit be<strong>fr</strong>iedigenden/guten Noten bewertet worden. Die beste<br />

Suchmaske hat <strong>der</strong> GBV (3,75). Etwas schlechter sind BIS (3,25) und TIB (3,17).<br />

Analyse:<br />

Beim BIS gibt es sowohl <strong>ein</strong>e <strong>ein</strong>fache, als auch <strong>ein</strong>e erweiterte Suchmaske. Beide Suchmasken<br />

sind intuitiv zu verstehen und zu benutzen.<br />

14.3.3. Websuche<br />

Beschreibung:<br />

Mit <strong>der</strong> Websuche k<strong>an</strong>n <strong>der</strong> Benutzer s<strong>ein</strong>en Suchraum über den Bibliotheksdienst auf<br />

das WWW ausweiten. Dazu werden Schnittstellen/Links auf Suchmaschinen <strong>an</strong>gegeben<br />

(z.B. Google). Diese Funktion wurde nur mit <strong>ein</strong>er 1 gewichtet.<br />

Ergebnis:<br />

Alle Ergebnisse sind bestenfalls ausreichend. Die Möglichkeit zur Websuche ist am Besten<br />

vom BIS umgesetzt (2,25). Die drei <strong>an</strong><strong>der</strong>en K<strong>an</strong>didaten haben fast den gleichen Wert<br />

(ca. 1,7).<br />

Analyse:<br />

Im BIS gibt es <strong>ein</strong>e umf<strong>an</strong>greiche Linksammlung, die bei <strong>ein</strong>er Suche im WWW helfen<br />

soll. Die Links sind zwar etwas unübersichtlich dargestellt, aber gut dokumentiert.<br />

14.4. Suchraum<br />

Der Suchraum ist unterteilt in die Teilkriterien Global, Lokal und Suchkriterien.<br />

150


14.4. SUCHRAUM<br />

14.4.1. Global<br />

Beschreibung:<br />

Bei <strong>ein</strong>er globalen Suche k<strong>an</strong>n <strong>der</strong> Benutzer nicht nur in dem Best<strong>an</strong>d s<strong>ein</strong>er Heimatbibliothek<br />

recherchieren, son<strong>der</strong>n k<strong>an</strong>n die Suche auch auf <strong>an</strong><strong>der</strong>e Bibliothekskataloge<br />

ausweiten.<br />

Ergebnis:<br />

Der GBV lässt sich am besten zum Suchen im globalen Suchraum verwenden (3,83). Wesentlich<br />

schlechter ist das BIS (2,5). Die <strong>an</strong><strong>der</strong>en beiden K<strong>an</strong>didaten sind aber immerhin<br />

noch mit <strong>ein</strong>em be<strong>fr</strong>iedigend gutem Ergebnis bewertet (SUB 3 und TIB 3,42).<br />

Analyse:<br />

Der Suchraum im BIS lässt sich nicht über die Bestände <strong>der</strong> <strong>Uni</strong>versitäts-Bibliothek und<br />

<strong>der</strong> L<strong>an</strong>desbibliothek hinaus erweitern. Für Recherchen im Best<strong>an</strong>d <strong>an</strong><strong>der</strong>er Bibliotheken<br />

muss <strong>der</strong> GBV verwendet werden.<br />

14.4.2. Lokal<br />

Beschreibung:<br />

Bei <strong>ein</strong>er lokalen Suche k<strong>an</strong>n <strong>der</strong> Benutzer die Suche nur auf den Best<strong>an</strong>d s<strong>ein</strong>er Heimatbibliothek<br />

beschränken.<br />

Ergebnis:<br />

Bei diesem Kriterium erzielen SUB und TIB <strong>ein</strong> sehr gutes Ergebnis (4,17). Die lokale<br />

Suche im BIS ist mit 3,5 gut bewertet. Ein schlechtes Ergebnis erzielt dagegen <strong>der</strong> GBV<br />

(2,5).<br />

Analyse:<br />

Die Suche im BIS ist auf defaultmäÿig auf die Bestände von <strong>Uni</strong>versitätsbibliothek und<br />

L<strong>an</strong>desbibliothek beschränkt. In <strong>der</strong> erweiterten Suchmaske gibt es noch <strong>ein</strong>ige weitere<br />

Optionen zum Suchraum. M<strong>an</strong> k<strong>an</strong>n aber z.B. die Suche nicht nur auf den Best<strong>an</strong>d <strong>der</strong><br />

<strong>Uni</strong>versitätsbibliothek beschränken.<br />

14.4.3. Suchkriterien<br />

Beschreibung:<br />

Der Suchraum sollte vom Benutzer <strong>an</strong>h<strong>an</strong>d von Angaben zu bestimmten Suchkriterien<br />

<strong>ein</strong>schränkbar s<strong>ein</strong> (zumindest in <strong>der</strong> erweiterten Suchmaske). Die Projektgruppe hat die<br />

wichtigsten Suchkriterien, die vorh<strong>an</strong>den und auswählbar s<strong>ein</strong> sollten, festgelegt: Sprache,<br />

Titel, Autor, Ersch<strong>ein</strong>ungsdatum, Gegenst<strong>an</strong>d <strong>der</strong> Suche, ISBN, Schlagwörter, Verlag.<br />

Ergebnis:<br />

Alle K<strong>an</strong>didaten erzielen be<strong>fr</strong>iedigende bis gute Ergebnisse. Der SUB liegt mit 3,93 Punkten<br />

<strong>an</strong> erster Stelle. GBV (3,75) und TIB (3,83) sind ähnlich gut. Etwas abgeschlagen ist<br />

das BIS mit 3,25 Punkten.<br />

Analyse:<br />

In <strong>der</strong> erweiterten Suchmaske des BIS k<strong>an</strong>n m<strong>an</strong> folgende Suchkriterien auswählen: Ti-<br />

151


KAPITEL 14. BEWERTUNG VON BESTEHENDEN BIBLIOTHEKSDIENSTEN<br />

telstichwörrter (Bücher/Medien), Titelstichwörrter (Zeitschriften), Titelstichwörter (Serien),<br />

Titel (Phrase), Titel (genau), Freitext (überall), Personen, Institutionen/Kongress,<br />

ISBN/ISSN, Schlagwörter, Systemstelle (BIS), Ersch<strong>ein</strong>ungsjahr und in welchen Medien<br />

gesucht werden soll. Es können auch drei verschiedene Kriterien mit und/o<strong>der</strong> verknüpft<br />

werden. Damit lassen sich bis auf die Sprache und den Verlag alle gefor<strong>der</strong>ten Kriterien<br />

<strong>ein</strong>stellen.<br />

14.5. Medientyp<br />

Beim Medientyp wird zwischen dem Format des Mediums und dem Inhalt unterschieden.<br />

14.5.1. Formal<br />

Beschreibung:<br />

Mit dieser Funktion lässt sich <strong>der</strong> Suchraum auf Medien <strong>ein</strong>es bestimmten Formates <strong>ein</strong>grenzen.<br />

Unter Format ist z.B. Audio, Video o<strong>der</strong> Text zu verstehen.<br />

Ergebnis:<br />

SUB (4,25), TIB (4,17) und GBV (4,0) erzielen gute bis sehr gute Ergebnisse. Wesentlich<br />

schlechter ist dagegen das BIS mit <strong>ein</strong>em be<strong>fr</strong>iedigenden Wert (3,17).<br />

Analyse:<br />

Die Festlegung <strong>der</strong> Suche auf <strong>ein</strong> bestimmtes Format ist im BIS nur <strong>an</strong>satzweise umgesetzt.<br />

In <strong>der</strong> erweiterten Suche k<strong>an</strong>n <strong>der</strong> Benutzer bezüglich des Formates unter folgenden<br />

Kriterien auswählen: in allen Medien, audio-visuelle Materialien, kartographische Medien,<br />

Zeitschriften und Mediatheksbest<strong>an</strong>d. Diese Kriterien sind aber vermischt mit inhaltlichen<br />

Kriterien und Orts<strong>an</strong>gaben. Die Vermischung von Suchkriterien unterschiedlicher Kategorien<br />

erschwert es, zu <strong>ein</strong>em schnellen Ergebnis zu gel<strong>an</strong>gen.<br />

14.5.2. Inhaltlich<br />

Beschreibung:<br />

Ein bestimmter Medientyp lässt sich auch über den Inhalt festlegen. Mit Inhalt ist z.B.<br />

Diplomarbeit o<strong>der</strong> Essay gem<strong>ein</strong>t.<br />

Ergebnis:<br />

Bei diesem Kriterium erzielen alle K<strong>an</strong>didaten ähnliche Ergebnisse. Am besten schneiden<br />

BIS und SUB ab (3,67). Leicht schlechter sind TIB (3,33) und GBV (3,08).<br />

Analyse:<br />

Die Auswahl von Suchkriterien, die sich auf den Inhalt des Werkes beziehen ist im BIS<br />

nur teilweise möglich. In <strong>der</strong> erweiterten Suche k<strong>an</strong>n <strong>der</strong> Benutzer unter folgenden Kriterien<br />

auswählen: Dissertationen und Habilitationsschriften, Dipl.-, Mag.- und Ex.-Arbeiten<br />

(<strong>Uni</strong>v. <strong>Oldenburg</strong>), Kin<strong>der</strong>bücher (<strong>Uni</strong>versitätsbibliothek), <strong>Oldenburg</strong>ica (L<strong>an</strong>desB.), Nie<strong>der</strong>deutsche<br />

Literatur (L<strong>an</strong>desB.), Schulbücher (<strong>Uni</strong>versitätsbibl.) und Noten (<strong>Uni</strong>versitätsbibl.).<br />

Diese Kriterien sind aber vermischt mit formalen Kriterien und Orts<strong>an</strong>gaben.<br />

152


14.6. SUCHMASKE<br />

Die Vermischung von Suchkriterien unterschiedlicher Kategorien erschwert die Auswahl<br />

passen<strong>der</strong> Suchkriterien.<br />

14.6. Suchmaske<br />

Das Kriterium Suchmaske bewertet, in wie weit die Suchkriterien dem Nutzer als wählbare<br />

Optionen <strong>an</strong>geboten werden. Da die Suchmaske entscheidend für die Benutzung des<br />

Bibliotheks<strong>an</strong>gebots ist, ist die Gewichtung <strong>der</strong> Kriterien entsprechend hoch. Nur zusätzliche<br />

Services wie Suchassistent und Nutzerklassen werden als weniger wichtig(Gewichtung<br />

von 3 bzw. 2) <strong>ein</strong>gestuft.<br />

14.6.1. Nutzung aller möglichen Suchkriterien<br />

Beschreibung:<br />

Wieviele und welche <strong>der</strong> Suchkriterien stellt die Suchmaske zur Verfügung? K<strong>an</strong>n <strong>der</strong><br />

Nutzer durch Auswahl/Einschränkung <strong>der</strong> Kriterien s<strong>ein</strong>e Such<strong>an</strong><strong>fr</strong>age individuell zusammenstellen?<br />

Ergebnis:<br />

Das BIS bekommt <strong>ein</strong>e Durchschnittsnote von 2.75 für die individuelle Zusammenstellbarkeit,<br />

die <strong>an</strong><strong>der</strong>en Bibliotheken liegen zwischen 3.5 und 3.7, also fast <strong>ein</strong>e Note besser.<br />

Bei Einschränkung/Auswahl <strong>der</strong> Kriterien wird das BIS mit 3.33 bewertet, die <strong>an</strong><strong>der</strong>en<br />

Angebote bekommen Noten von 3.75(SUB), 3.83(GBV) und 3.67(TIB), also leicht besser.<br />

Analyse:<br />

Das BIS schneidet von allen untersuchten Bibliotheken am schlechtesten ab. Es wird <strong>ein</strong>e<br />

<strong>ein</strong>fache und <strong>ein</strong>e erweiterte Suche <strong>an</strong>geboten. Die <strong>ein</strong>fache Suche bietet <strong>ein</strong> Eingabefeld<br />

und die Möglichkeit, den Suchbegri als Titel o<strong>der</strong> Autor o<strong>der</strong> als Schlagwort zu klassizieren.<br />

Bei <strong>der</strong> erweiterten Suche können drei Eingaben gemacht werden, die unter<strong>ein</strong><strong>an</strong><strong>der</strong><br />

logisch verknüpft und jeweils <strong>ein</strong>em Suchfeld zugeordnet werden können. Weitere Optionen<br />

sind Ersch<strong>ein</strong>ungsjahr(ist, ist neuer als, ist älter als, liegt zwischen) und die Auswahl<br />

des Medientyps (s.dort).<br />

14.6.2. Nutzerklassen<br />

Beschreibung:<br />

Wird zwischen Nutzerklassen unterschieden, also erfahrenen Nutzern die erweiterte, unerfahrenen<br />

die <strong>ein</strong>fache Suche als St<strong>an</strong>dard präsentiert.<br />

Ergebnis:<br />

K<strong>ein</strong>e <strong>der</strong> untersuchten Systeme bietet <strong>ein</strong>en solchen Service.<br />

14.6.3. Suchassistent<br />

Beschreibung:<br />

Gibt es <strong>ein</strong>en Suchassistenten, <strong>der</strong> den Nutzer bei den Schritten s<strong>ein</strong>er Suche erklärend<br />

153


KAPITEL 14. BEWERTUNG VON BESTEHENDEN BIBLIOTHEKSDIENSTEN<br />

begleitet.<br />

Ergebnis:<br />

K<strong>ein</strong>e <strong>der</strong> untersuchten Systeme bietet <strong>ein</strong>en Assistenten.<br />

14.6.4. Auswahl des Suchraums<br />

Beschreibung: Lässt sich <strong>der</strong> Suchraum <strong>ein</strong>grenzen bzw. erweitern, k<strong>an</strong>n m<strong>an</strong> also nur<br />

in den tatsächlichen Beständen <strong>der</strong> Bibliothek suchen o<strong>der</strong> hat m<strong>an</strong> die Möglichkeit, zu<br />

durchsuchende Bibliotheken(z.B. für Fernleihe) auszuwählen?<br />

Ergebnis:<br />

Das BIS wird ähnlich wie die <strong>an</strong><strong>der</strong>en Bibliotheken mit 2.92 bewertet.<br />

Analyse:<br />

Das BIS bietet nicht die Möglichkeit, den Suchraum zu verän<strong>der</strong>n. St<strong>an</strong>dardmäÿig wird<br />

in den Beständen <strong>der</strong> St<strong>an</strong>dorte Uhlhornsweg und Wechloy, <strong>der</strong> L<strong>an</strong>desbibliothek und <strong>der</strong><br />

FH gesucht. Für <strong>ein</strong>e Fernleihe muss seperat im GBV-Katalog gesucht werden.<br />

14.6.5. Auswahl <strong>der</strong> Medientypen<br />

Beschreibung: Hat <strong>der</strong> Nutzer die Möglichkeit festzulegen, welche Medientypen in s<strong>ein</strong>em<br />

Ergebnis <strong>an</strong>gezeigt bzw. welche ausgeschlossen werden sollen<br />

Ergebnis:<br />

Hier schneidet das BIS mit <strong>ein</strong>em Wert von 2.67 deutlich schlechter ab als die <strong>an</strong><strong>der</strong>en<br />

Bibliotheken mit Noten über 4.<br />

Analyse:<br />

Die erweiterte Suchmaske des BIS ermöglicht die Auswahl des Medientyps, allerdings<br />

lässt sich nur <strong>ein</strong> Medientyp festlegen, nachdem gesucht werden soll. Kombinationen bzw.<br />

Abwahl bestimmter Typen sind möglich.<br />

SUB, GBV und TIB bieten wesentlich weitergehende Optionen. Alle vorh<strong>an</strong>denen Medientypen<br />

werden aufgelistet und lassen sich durch Checkboxes <strong>an</strong>- o<strong>der</strong> abwählen, so<br />

dass je<strong>der</strong> Nutzer die von ihm im Ergebnis gewünschten Typen zusammen stellen k<strong>an</strong>n.<br />

14.7. Ergebnispräsentation<br />

Das Kriterium Ergebnispräsentation bewertet, wie das Ergebnis <strong>ein</strong>er Such<strong>an</strong><strong>fr</strong>age dargestellt<br />

wird und welche Möglichkeiten dem Nutzer <strong>an</strong>geboten werden, diese Darstellung<br />

nach s<strong>ein</strong>en Interessen zu verän<strong>der</strong>n.<br />

14.7.1. Sortierung<br />

Beschreibung:<br />

Wird das Suchergebnis sortiert und falls ja, nach welchen Aspekten? K<strong>an</strong>n <strong>der</strong> Nutzer<br />

wählen, ob nach Titel, Autor, Ersch<strong>ein</strong>ungsjahr(Aktualität) auf- o<strong>der</strong> absteigend sortiert<br />

154


14.7. ERGEBNISPRÄSENTATION<br />

wird? Gibt es <strong>ein</strong>e Relev<strong>an</strong>zbewertung <strong>der</strong> Ergebnisse, so dass <strong>der</strong> Nutzer die besten<br />

Treer als erstes präsentiert bekommt? Werden persönliche Prole erstellt, nach denen<br />

die Relev<strong>an</strong>z <strong>der</strong> Suchergebnisse bewertet werden(was sucht <strong>der</strong> Nutzer sonst? Welchem<br />

Fachbereich gehört er <strong>an</strong>?)<br />

Ergebnis:<br />

In allen drei Kriterien bekommt das BIS nur niedrige Noten(


KAPITEL 14. BEWERTUNG VON BESTEHENDEN BIBLIOTHEKSDIENSTEN<br />

Gibt es das Buch als elektronische Ressource? Falls ja, unter welchen Voraussetzungen<br />

k<strong>an</strong>n <strong>der</strong> Nutzer sie ausleihen?<br />

Wie werden die Ergebnisse sortiert, wenn in mehreren Bibliotheken gesucht wurde?<br />

Ergebnis:<br />

Das BIS bekommt durchschnittliche Noten für die Kriterien wo/wieviel(3) und Status(3.67).<br />

Für die Sortierung nach Verfügbarkeit(1.67), Fernleihe(2.58) und Verfügbarkeit in digitalen<br />

Bibliotheken(1.33) schlechtere Werte. SUB, TIB und GBV erhalten ähnliche Noten.<br />

Nur die Suche in digitalen Bibliotheken wird bei den <strong>an</strong><strong>der</strong>en <strong>ein</strong>deutig besser bewertet.<br />

Die Fernleihe ist natürlich beim GBV am besten.<br />

Analyse:<br />

Das BIS zeigt erst in <strong>der</strong> Voll<strong>an</strong>zeige, ob <strong>ein</strong> Medium ausleihbar ist und wo es wieviele<br />

Exemplare davon gibt. Es wird nicht nach Verfügbarkeit sortiert und auch k<strong>ein</strong>e Fernleihemöglichkeiten<br />

<strong>an</strong>gezeigt. Bei Verfügbarkeit in digitalen Bibliotheken, für die die <strong>Uni</strong><br />

<strong>ein</strong>e Lizenz besitzt, verweist <strong>ein</strong> Link auf den Artikel. Um ihn zu lesen, muss m<strong>an</strong> sich<br />

allerdings innerhalb des <strong>Uni</strong>-Netzwerks benden.<br />

Bei SUB, GBV und TIB werden mehr elektronische Ressourcen gefunden und per Link<br />

zugänglich gemacht.<br />

156


15. Anfor<strong>der</strong>ungsdenition<br />

15.1. Ausg<strong>an</strong>gssituation, Zielsetzung<br />

Die zügige Entwicklung des Internets und <strong>der</strong> Informationstechnologie führen zw<strong>an</strong>gsläu-<br />

g zu groÿen Verän<strong>der</strong>ungen in den Bereichen des Studiums, <strong>der</strong> Lehre, Forschung und<br />

Fortbildung. Aus diesem Grund ist in Zukunft <strong>der</strong> optimale Einsatz von Informationstechnologie<br />

<strong>ein</strong> wichtiger Aspekt im Wettbewerb <strong>der</strong> Hochschulen.<br />

Zunehmend werden neben Vorlesungen und Seminaren auch digitale Medien zur Fortbildung<br />

verwendet, wofür eigens Lernm<strong>an</strong>agementsysteme als Plattformen <strong>an</strong> den Hochschulen<br />

<strong>ein</strong>geführt wurden, die allerdings nicht so intensiv in Anspruch genommen werden, wie<br />

dies im Ausl<strong>an</strong>d oft <strong>der</strong> Fall ist.<br />

Seit <strong>ein</strong>iger Zeit arbeiten deutsche Hochschulen, so auch die <strong>Uni</strong>versität <strong>Oldenburg</strong>, <strong>an</strong><br />

<strong>ein</strong>em i 3 sic!-Entwicklungsprojekt (Integrierte Informationsin<strong>fr</strong>astruktur - service information<br />

communication!) zur Einführung integrierter Arbeitsumgebungen, welche durch<br />

Beseitigung gegenwärtiger Redund<strong>an</strong>zen in <strong>der</strong> Datenpege und Minimierung von Schnittstellenproblemen<br />

zwischen aktuell parallel existierenden, inkompatiblen Systemen die Ef-<br />

zienz <strong>der</strong> Arbeitsabläufe steigern sollen. Unter <strong>an</strong><strong>der</strong>em geschieht dies in <strong>Oldenburg</strong> in<br />

Form <strong>ein</strong>es <strong>Studierendenportal</strong>s, welches die Produktion wissenschaftlicher Information<br />

und die Kommunikation in Gruppen ver<strong>ein</strong>fachen soll.<br />

Ein Vorteil dieser Portal-Neuentwicklung ist, dass die Studierenden und Mitarbeiter alle<br />

Online-Angebote <strong>der</strong> <strong>Uni</strong>versität in Zukunft nicht wie bisher auf verschiedenen Websites<br />

mit jeweils eigenständigen Nutzerverwaltungen und Datenhaltungen, son<strong>der</strong>n <strong>ein</strong>heitlich<br />

im Rahmen des Portals <strong>an</strong>geboten bekommen. Die durch <strong>ein</strong>e zentrale Rechte- und Nutzerverwaltung<br />

<strong>an</strong>gebotene Single Sign On-Funktion erleichtert die In<strong>an</strong>spruchnahme aller<br />

integrierten Dienste. Auÿerdem können d<strong>an</strong>k <strong>der</strong> Personalisierung des Portals dessen<br />

Inhalte und Aussehen von jedem Nutzer individuell <strong>an</strong>gepasst werden.<br />

Nähere Informationen zum i 3 sic-Portal-Entwicklungsprojekt können im dazugehörigen<br />

Projektbericht nachgelesen werden.<br />

Für dieses <strong>Studierendenportal</strong> <strong>der</strong> <strong>Uni</strong>versität <strong>Oldenburg</strong> sollen durch diese Projektgruppe<br />

<strong>Bibliotheksdienste</strong> entwickelt werden. Zu den Hauptzielen <strong>der</strong> Projektgruppe zählen neben<br />

<strong>der</strong> in Form mehrerer Portlets vorgesehenen Einbindung des <strong>Oldenburg</strong>er Bibliotheks-<br />

Informationssystems (BIS) ins Portal auch die Erweiterung des Zugris <strong>der</strong> BIS-Suchfunktion<br />

auf externe Quellen, wie beispielsweise digitale Bibliotheken, und die damit verbundene<br />

Umstrukturierung <strong>der</strong> Suche.<br />

So wurde aus <strong>ein</strong>em von <strong>der</strong> Projektgruppe erstellten Kriterienkatalog, in welchem die<br />

Gruppenmitglie<strong>der</strong> <strong>ein</strong>e Auswahl relev<strong>an</strong>ter Anfor<strong>der</strong>ungen stellten und diese im gegen-<br />

157


KAPITEL 15. ANFORDERUNGSDEFINITION<br />

wärtigen BIS-Onlinesystem und in vergleichbaren externen Angeboten bewerteten, diese-<br />

Anfor<strong>der</strong>ungsdenition <strong>an</strong> das zu entwickelnde Projekt erstellt.<br />

Im Vor<strong>der</strong>grund <strong>der</strong> Entwicklung stehen Benutzer<strong>fr</strong>eundlichkeit, <strong>ein</strong>e eektive Suche und<br />

<strong>ein</strong>e sinnvolle Präsentation <strong>der</strong> Suchergebnisse. Zudem sollen die BIS-Benutzerkonten im<br />

Zuge <strong>der</strong> Umstellung auf das Portal abgelöst werden.<br />

15.2. System<strong>ein</strong>satz und Zielumgebung<br />

Das System wird in das Open-Source Portal Liferay als Teil <strong>ein</strong>es <strong>Studierendenportal</strong>s integriert<br />

werden. Liferay basiert auf Java und ist deshalb plattformunabhängig <strong>ein</strong>setzbar.<br />

Über das <strong>Studierendenportal</strong> werden den Studenten die bisher von<strong>ein</strong><strong>an</strong><strong>der</strong> getrennt <strong>an</strong>gebotenen<br />

Dienste (z.B. StudIP, Bibliothek und E-Mail) zusammen und per Single-Sign-On<br />

zur Verfügung gestellt. Damit das System möglichst unabhängig vom verwendeten Portal<br />

<strong>ein</strong>gesetzt werden k<strong>an</strong>n, wird die Bibliotheksfunktion mit JSR-168-konformen Portlets implementiert<br />

werden. Die Portlets können dabei wie<strong>der</strong>um <strong>an</strong><strong>der</strong>e Java-Technologien (z.B.<br />

JSP, EJB) verwenden.<br />

Die Bibliotheksfunktion wird auf <strong>der</strong> von <strong>der</strong> Bibliothek <strong>Oldenburg</strong> verwendeten Software<br />

URICA aufsetzen. URICA stellt verschiedene Schnittstellen zur Verfügung. Das von<br />

<strong>der</strong> Projektgruppe zu entwickelnde System wird nicht für administrative Aufgaben <strong>der</strong><br />

Bibliothek (z.B. neue Bücher <strong>an</strong>legen, Metadaten bearbeiten) verwendet werden.<br />

15.3. Funktionale Anfor<strong>der</strong>ungen<br />

Dieses Kapitel befasst sich mit den funktionalen Anfor<strong>der</strong>ungen, die <strong>an</strong> das zu entwickelnde<br />

Softwaresystem gestellt werden und nimmt somit <strong>ein</strong>e Konkretisierung des in den<br />

Zielbestimmungen (siehe Kapitel 1) denierten Funktionalitätsumf<strong>an</strong>gs vor. Dazu ndet<br />

zunächst in Abschnitt 15.3.1 <strong>ein</strong>e Betrachtung <strong>der</strong> <strong>an</strong>gestrebten Nutzerklassen statt. Im<br />

Anschluss dar<strong>an</strong> werden in Abschnitt 15.3.2 mögliche Anwendungsfälle identiziert und<br />

in vier übergeordnete Funktionalitätsklassen <strong>ein</strong>geordnet. Abschlieÿend werden die <strong>ein</strong>zelnen<br />

Anwendungsfälle - geglie<strong>der</strong>t nach den vier Funktionalitätsklassen Suchen, Beschaen,<br />

Benutzerkonto verwalten und Onlinehilfe au<strong>fr</strong>ufen - in den Abschnitten 15.3.3 bis 15.3.3<br />

detailliert beschrieben.<br />

15.3.1. Benutzerklassen<br />

Zunächst sind für das System zwei Benutzerklassen vorgesehen:<br />

• Authentizierter Benutzer: Authentizierte Benutzer sind Benutzer mit Account<br />

im <strong>Studierendenportal</strong>, die üblicherweise auch schon im BIS registriert sind.<br />

Zu dieser Klasse zählen im Allgem<strong>ein</strong>en Studenten, Mitarbeiter und Lehrende <strong>der</strong><br />

<strong>Uni</strong>versität <strong>Oldenburg</strong> sowie die Administratoren des Systems selbst.<br />

158


15.3. FUNKTIONALE ANFORDERUNGEN<br />

• Gast: Gäste erhalten ohne Account und Rechte Zugri auf <strong>ein</strong>e Teilmenge des<br />

vollständigen Funktionalitätsumf<strong>an</strong>gs.<br />

15.3.2. Anwendungsfälle<br />

Der Entwurf und die Integration von verschiedenen <strong>Bibliotheksdienste</strong>n in <strong>ein</strong> sich in<br />

<strong>der</strong> Entwicklungsphase bendendes Web-Portal erfor<strong>der</strong>n die Berücksichtigung zahlreicher<br />

Funktionalitäten. Diese Funktionalitäten sollen <strong>ein</strong>em Nutzer des Portals die Arbeit<br />

und die Interaktion mit verschiedenen Bibliotheken insbeson<strong>der</strong>e <strong>der</strong> <strong>Uni</strong>versitätsbibliothek<br />

<strong>Oldenburg</strong>, aber auch <strong>an</strong><strong>der</strong>er Bibliotheken, Verbundsystemen und digitaler Bibliotheken<br />

erleichtern und diverse Dienste online zugänglich machen. Die zu realisierenden<br />

Funktionalitäten können in vier Kategorien <strong>ein</strong>geteilt werden. Am Anf<strong>an</strong>g nahezu je<strong>der</strong><br />

Nutzung von Online-<strong>Bibliotheksdienste</strong>n steht die Recherche nach den gewünschten Dokumenten.<br />

Dieses breite Aufgabenfeld liefert d<strong>an</strong>n oft in Form von grasch aufbereiteten<br />

Suchergebnissen die Ausg<strong>an</strong>gsbasis für weitere Aktivitäten, die im Bereich <strong>der</strong> Beschaffung<br />

von Dokumenten liegen. Unverzichtbar ist auch <strong>ein</strong> komfortables Benutzerkonto, in<br />

dem Funktionalitäten rund um das Einsehen von Ausleihstatus, Gebühren, Nachrichten<br />

o<strong>der</strong> das Kongurieren des eigenen Prols <strong>an</strong>geboten werden sollen. Alle Funktionalitäten<br />

werden durch <strong>ein</strong>e Onlinehilfe unterstützt, die den vierten Funktionalitätsblock bildet. Sie<br />

soll den Benutzer in verschiedenen Formen beim Umg<strong>an</strong>g mit dem System unterstützen.<br />

Jede <strong>der</strong> vier Funktionalitätsklassen setzt sich also aus verschiedenen Funktionalitäten<br />

zusammen, die aus <strong>der</strong> folgenden Liste zu entnehmen sind.<br />

• Suchen<br />

Einfaches Suchen<br />

Erweitertes Suchen<br />

• Beschaen<br />

Dokument vorbestellen<br />

Dokument fernleihen<br />

Dokument aus digitaler Bibliothek beziehen<br />

• Benutzerkonto verwalten<br />

Registrierung bei Bibliothekssystemen<br />

Dokumente <strong>ein</strong>sehen<br />

∗ Geliehene Dokumente <strong>ein</strong>sehen<br />

∗ Vorbestellungen <strong>ein</strong>sehen<br />

∗ Vormals geliehene Dokumente <strong>ein</strong>sehen<br />

Gebühren <strong>ein</strong>sehen<br />

Benachrichtigungen <strong>ein</strong>sehen<br />

Ausleihe verlängern<br />

Prol <strong>ein</strong>stellen<br />

• Onlinehilfe au<strong>fr</strong>ufen<br />

Tutorial lesen<br />

159


KAPITEL 15. ANFORDERUNGSDEFINITION<br />

Kontextsensitive Online-Hilfe benutzen<br />

Live Chat betreten<br />

Das Use-Case-Diagramm in Abbildung 15.1 ver<strong>an</strong>schaulicht die Gruppierung <strong>der</strong> Funktionalitäten<br />

noch <strong>ein</strong>mal grasch und deniert zugleich, welche <strong>Bibliotheksdienste</strong> für das<br />

<strong>Studierendenportal</strong> zu entwickeln und <strong>an</strong>zubieten sind.<br />

Abbildung 15.1.: UML Anwendungsfalldiagramm des zu entwickelnden Systems<br />

160


15.3. FUNKTIONALE ANFORDERUNGEN<br />

15.3.3. Funktionalität<br />

Im folgenden wird nun auf die vier identizierten Funktionalitätsklassen genauer <strong>ein</strong>geg<strong>an</strong>gen.<br />

Dazu wird je<strong>der</strong> Anwendungsfall <strong>ein</strong>er Klasse in Form <strong>ein</strong>er tabellarischen Übersicht<br />

im Detail beschrieben.<br />

Suchen<br />

ANWENDUNGSFALL<br />

Einfaches Suchen<br />

ZWECK<br />

Einfache, schwach parametrisierbare Suche<br />

AKTEURE<br />

Gast, authentizierter Benutzer<br />

EREIGNIS<br />

Benutzer möchte <strong>ein</strong>e <strong>ein</strong>fache Suche durchführen<br />

VORBEDINGUNGEN<br />

Einfache Suchmaske wurde geönet<br />

RELEVANTE EINGABEDATEN<br />

Eine <strong>ein</strong>fache Such<strong>an</strong><strong>fr</strong>age in Form <strong>ein</strong>es o<strong>der</strong> mehrerer Schlag- bzw. Suchworte und<br />

<strong>ein</strong>er Möglichkeit <strong>der</strong> Einschränkung des Suchraums<br />

AUSNAHMEN<br />

Fehler bei Verbindung zu Bibliothekssystem<br />

ERGEBNIS<br />

Benutzer bekommt Suchergebnis in tabellarischer Form mit Optionen zur Än<strong>der</strong>ung<br />

<strong>der</strong> Sortierung <strong>der</strong> Suchergebnisse sowie Detail<strong>an</strong>sichten <strong>ein</strong>zelner Einträge <strong>an</strong>gezeigt.<br />

Für authentizierte Benutzer wird zudem <strong>ein</strong>e Nutzung weiterer Funktionalitäten, wie<br />

z.B. Vormerken, Fernleihen usw. <strong>an</strong>geboten<br />

NACHBEDINGUNGEN<br />

k<strong>ein</strong>e<br />

SZENARIO<br />

1. Benutzer önet <strong>ein</strong>fache Suchmaske<br />

2. Beutzer gibt Suchbegri(e) <strong>ein</strong><br />

3. Benutzer schränkt ggf. den Suchraum <strong>ein</strong><br />

4. Benutzer führt Suche nach Abschluss s<strong>ein</strong>er Eingaben aus<br />

5. Benutzer sieht die ermittelten Suchergebnisse (siehe Ergebnis) <strong>ein</strong><br />

6. Benutzer än<strong>der</strong>t ggf. die Sortierung <strong>der</strong> Suchergebnisse<br />

7. Benutzer lässt sich die Detail<strong>an</strong>gaben zu <strong>ein</strong>em Dokument <strong>an</strong>zeigen<br />

161


KAPITEL 15. ANFORDERUNGSDEFINITION<br />

ANWENDUNGSFALL<br />

Erweitertes Suchen<br />

ZWECK<br />

Komplexe, stark parametrisierbare Suche<br />

AKTEURE<br />

Gast, authentizierter Benutzer<br />

EREIGNIS<br />

Benutzer möchte erweiterte Suche durchführen<br />

VORBEDINGUNGEN<br />

Erweiterte Suchmaske wurde geönet<br />

RELEVANTE EINGABEDATEN<br />

Eine komplexe Such<strong>an</strong><strong>fr</strong>age unter Angabe diverser Suchparameter, wie z.B. Titel, Autor(en),<br />

Verlag, Ersch<strong>ein</strong>ungsjahr usw., und expliziter Auswahlmöglichkeiten von Dokumenttypen<br />

AUSNAHMEN<br />

Fehler bei Verbindung zu Bibliothekssystem<br />

ERGEBNIS<br />

Benutzer bekommt Suchergebnis in tabellarischer Form mit Optionen zur Än<strong>der</strong>ung<br />

<strong>der</strong> Sortierung <strong>der</strong> Suchergebnisse sowie Detail<strong>an</strong>sichten <strong>ein</strong>zelner Einträge <strong>an</strong>gezeigt.<br />

Für authentizierte Benutzer wird zudem <strong>ein</strong>e Nutzung weiterer Funktionalitäten, wie<br />

z.B. Vormerken, Fernleihen usw. <strong>an</strong>geboten<br />

NACHBEDINGUNGEN<br />

k<strong>ein</strong>e<br />

SZENARIO<br />

1. Benutzer önet <strong>ein</strong>fache Suchmaske<br />

2. Beutzer gibt diverse Suchbegri(e) <strong>ein</strong> (siehe relev<strong>an</strong>te Eingabedaten)<br />

3. Benutzer schränkt ggf. den Suchraum und den Dokumenttyp <strong>ein</strong><br />

4. Benutzer führt Suche nach Abschluss s<strong>ein</strong>er Eingaben aus<br />

5. Benutzer sieht die ermittelten Suchergebnisse (siehe Ergebnis) <strong>ein</strong><br />

6. Benutzer än<strong>der</strong>t ggf. die Sortierung <strong>der</strong> Suchergebnisse<br />

7. Benutzer lässt sich die Detail<strong>an</strong>gaben zu <strong>ein</strong>em Dokument <strong>an</strong>zeigen<br />

162


15.3. FUNKTIONALE ANFORDERUNGEN<br />

Beschaen<br />

ANWENDUNGSFALL<br />

Dokument vorbestellen<br />

ZWECK<br />

Vorbestellung <strong>ein</strong>es Dokuments zur späteren Abholung in <strong>der</strong> Bibliothek<br />

AKTEURE<br />

Authentizierter Benutzer<br />

EREIGNIS<br />

Benutzer möchte <strong>ein</strong> Dokument vorbestellen<br />

VORBEDINGUNGEN<br />

• Benutzer ist authentiziert<br />

• Eine Suche (<strong>ein</strong>fach o<strong>der</strong> erweitert) wurde durchgeführt<br />

• Das betreende Dokument wurde gefunden<br />

• Das betreende Dokument steht zur Vorbestellung zur Verfügung<br />

RELEVANTE EINGABEDATEN<br />

Funktionalität operiert auf bereits gewähltem Dokument. K<strong>ein</strong>e weiteren Eingabedaten<br />

AUSNAHMEN<br />

Fehler bei Verbindung zu Bibliothekssystem<br />

ERGEBNIS<br />

Benutzer bekommt Meldung über erfolgreich im Bibliothekssystem abgesetzte Vorbestellung<br />

NACHBEDINGUNGEN<br />

• Vorbestellung k<strong>an</strong>n im Benutzerkonto <strong>ein</strong>gesehen werden<br />

• Vorbestellung ist im Bibliothekssystem abgesetzt<br />

SZENARIO<br />

1. Benutzer führt <strong>ein</strong>fache o<strong>der</strong> erweiterte Suche durch<br />

2. Benutzer wählt Funktionalität zur Vorbestellung <strong>ein</strong>es als Suchergebnis <strong>an</strong>gezeigten<br />

Dokuments<br />

163


KAPITEL 15. ANFORDERUNGSDEFINITION<br />

ANWENDUNGSFALL<br />

Dokument fernleihen<br />

ZWECK<br />

Ausleihe <strong>ein</strong>es Dokuments aus entfernter Bibliothek über lokale Bibliothek<br />

AKTEURE<br />

Authentizierter Benutzer<br />

EREIGNIS<br />

Benutzer möchte Dokument ausleihen, dass in lokaler Bibliothek nicht vorrätig ist<br />

VORBEDINGUNGEN<br />

• Benutzer ist authentiziert<br />

• Eine Suche (<strong>ein</strong>fach o<strong>der</strong> erweitert) wurde durchgeführt<br />

• Das betreende Dokument wurde gefunden<br />

• Das betreende Dokument steht zur Fernleihe zur Verfügung<br />

RELEVANTE EINGABEDATEN<br />

Funktionalität operiert auf bereits gewähltem Dokument. K<strong>ein</strong>e weiteren Eingabedaten<br />

AUSNAHMEN<br />

Fehler bei Verbindung zu Bibliothekssystem<br />

ERGEBNIS<br />

Benutzer bekommt Meldung über erfolgreich <strong>ein</strong>geleitete Fernleihe<br />

NACHBEDINGUNGEN<br />

Auftrag zur Fernleihe bendet sich im Bibliothekssystem<br />

SZENARIO<br />

1. Benutzer führt <strong>ein</strong>fache o<strong>der</strong> erweiterte Suche durch<br />

2. Benutzer wählt Funktionalität zur Fernleihe <strong>ein</strong>es als Suchergebnis <strong>an</strong>gezeigten Dokuments<br />

164


15.3. FUNKTIONALE ANFORDERUNGEN<br />

ANWENDUNGSFALL<br />

Dokument aus digitaler Bibliothek beziehen<br />

ZWECK<br />

Übertragung <strong>ein</strong>er Dokumentdatei auf den Rechner des Benutzers<br />

AKTEURE<br />

Gast, authentizierter Benutzer<br />

EREIGNIS<br />

• Benutzer möchte in <strong>fr</strong>eier digitaler Bibliothek bendliches Dokument sofort digital<br />

beziehen<br />

• Authentizierter Benutzer möchte in <strong>an</strong>meldepichter Bibliothek bendliches Dokument<br />

sofort digital beziehen<br />

VORBEDINGUNGEN<br />

• Benutzer ist authentiziert (im Falle von <strong>an</strong>meldepichtiger digitaler Bibliothek)<br />

• Eine Suche (<strong>ein</strong>fach o<strong>der</strong> erweitert) wurde durchgeführt<br />

• Das betreende Dokument wurde gefunden<br />

• Das betreende Dokument steht zum direkten Download aus digitaler Bibliothek zur<br />

Verfügung<br />

RELEVANTE EINGABEDATEN<br />

Funktionalität operiert auf bereits gewähltem Dokument. K<strong>ein</strong>e weiteren Eingabedaten<br />

AUSNAHMEN<br />

Fehler beim Übertragen des Dokuments<br />

ERGEBNIS<br />

Dokumentdatei bendet sich auf dem lokalen Rechner des Benutzers<br />

NACHBEDINGUNGEN<br />

k<strong>ein</strong>e<br />

SZENARIO<br />

1. Benutzer führt <strong>ein</strong>fache o<strong>der</strong> erweiterte Suche durch<br />

2. Benutzer wählt Funktionalität zum Beziehen <strong>der</strong> Dokumentdatei aus digitaler Bibliothek<br />

3. Benutzer wählt lokalen Pfad zur Speicherung des Dokuments<br />

4. Dokument wird übertragen<br />

165


KAPITEL 15. ANFORDERUNGSDEFINITION<br />

Benutzerkonto verwalten<br />

ANWENDUNGSFALL<br />

Registrierung bei Bibliothekssystemen<br />

Dieser Anwendungsfall soll überg<strong>an</strong>gsweise realisiert werden. Die betreende Funktionalität<br />

soll ggf. später von <strong>ein</strong>em übergeordneten Identity M<strong>an</strong>agement System ersetzt werden.<br />

ZWECK<br />

Ermöglichung des Zugris auf <strong>ein</strong> Bibliothekssystem, das <strong>ein</strong>e Anmeldung erfor<strong>der</strong>t<br />

AKTEURE<br />

Authentizierter Benutzer<br />

EREIGNIS<br />

• Benutzer möchte Funktionalität nutzen, die <strong>ein</strong>e vorh<strong>an</strong>dene Registrierung bei <strong>ein</strong>em<br />

Bibliothekssystem voraussetzt und wird daher zunächst zu diesem Anwendungsfall<br />

umgeleitet<br />

• Benutzer möchte aktiv Registrierungsdaten für Bibliothekssystem <strong>ein</strong>geben<br />

VORBEDINGUNGEN<br />

• Benutzer ist authentiziert<br />

• Benutzer hat das Benutzerkonto geönet<br />

• Benutzer hat die Registrierungsfunktionalität selektiert<br />

RELEVANTE EINGABEDATEN<br />

Nutzerdaten (abhängig vom jeweiligen Bibliothekssystem)<br />

AUSNAHMEN<br />

Fehler bei Verbindung zu betreendem Bibliothekssystem<br />

ERGEBNIS<br />

Benutzer bekommt Meldung über erfolgreiche Registrierung bei dem betreenden Bibliothekssystem<br />

NACHBEDINGUNGEN<br />

Registrierungsinformationen sind gespeichert, sodass Funktionalitäten, die <strong>ein</strong>e vorh<strong>an</strong>dene<br />

Registrierung bei <strong>ein</strong>em Bibliothekssystem voraussetzen, benutzbar sind<br />

SZENARIO<br />

• Benutzer führt <strong>ein</strong>fache o<strong>der</strong> erweiterte Suche durch<br />

• Benutzer wählt Funktionalität die <strong>ein</strong>e vorh<strong>an</strong>dene Registrierung bei <strong>ein</strong>em Bibliothekssystem<br />

voraussetzt<br />

• Registrierung bei Bibliothekssystem wird vorgeschaltet<br />

• Gewünschte Funktionalität k<strong>an</strong>n genutzt werden<br />

166


15.3. FUNKTIONALE ANFORDERUNGEN<br />

ANWENDUNGSFALL<br />

Gebühren <strong>ein</strong>sehen<br />

ZWECK<br />

Nutzer k<strong>an</strong>n sich über <strong>an</strong>gefallene Gebühren informieren<br />

AKTEURE<br />

Authentizierter Benutzer<br />

EREIGNIS<br />

Benutzer möchte sich über <strong>an</strong>gefallene Gebühren informieren<br />

VORBEDINGUNGEN<br />

• Benutzer ist authentiziert<br />

• Benutzer hat das Benutzerkonto geönet<br />

• Benutzer hat die Funktionalität zum Einsehen <strong>der</strong> Gebühren selektiert<br />

RELEVANTE EINGABEDATEN<br />

k<strong>ein</strong>e<br />

AUSNAHMEN<br />

Fehler bei Verbindung zu Bibliothekssystem<br />

ERGEBNIS<br />

Benutzer bekommt <strong>ein</strong>e Aufstellung über <strong>an</strong>gefallene Gebühren <strong>an</strong>gezeigt<br />

NACHBEDINGUNGEN<br />

k<strong>ein</strong>e<br />

SZENARIO<br />

1. Benutzer wählt Benutzerkonto<br />

2. Benutzer wählt Funktionalität zur Anzeige von <strong>an</strong>gefallenen Gebühren<br />

ANWENDUNGSFALL<br />

Benachrichtigungen <strong>ein</strong>sehen<br />

ZWECK<br />

Benutzer k<strong>an</strong>n Benachrichtigungen, wie z.B. Mahnungen o<strong>der</strong> Hinweise auf demnächst<br />

wie<strong>der</strong> abzugebene Dokumente <strong>ein</strong>sehen<br />

AKTEURE<br />

Authentizierter Benutzer<br />

EREIGNIS<br />

Benutzer möchte Benachrichtigungen <strong>ein</strong>sehen<br />

VORBEDINGUNGEN<br />

• Benutzer ist authentiziert<br />

• Benutzer hat das Benutzerkonto geönet<br />

• Benutzer hat die Funktionalität zum Einsehen von Benachrichtigungen selektiert<br />

RELEVANTE EINGABEDATEN<br />

k<strong>ein</strong>e<br />

AUSNAHMEN<br />

Fehler bei Verbindung zu Bibliothekssystem<br />

ERGEBNIS<br />

Benutzer bekommt Benachrichtigungen <strong>an</strong>gezeigt<br />

NACHBEDINGUNGEN<br />

k<strong>ein</strong>e<br />

SZENARIO<br />

1. Benutzer wählt Benutzerkonto<br />

2. Benutzer wählt Funktionalität zur Anzeige von Benachrichtigungen<br />

167


KAPITEL 15. ANFORDERUNGSDEFINITION<br />

ANWENDUNGSFALL<br />

Ausleihe verlängern<br />

ZWECK<br />

Verlängerung <strong>der</strong> Abgabe<strong>fr</strong>ist <strong>ein</strong>es geliehenen Dokuments<br />

AKTEURE<br />

Authentizierter Benutzer<br />

EREIGNIS<br />

Benutzer möchte <strong>ein</strong> Dokument über die moment<strong>an</strong>e Abgabe<strong>fr</strong>ist hinaus behalten<br />

VORBEDINGUNGEN<br />

• Benutzer ist authentiziert<br />

• Benutzer hat das Benutzerkonto geönet<br />

• Benutzer hat die Funktionalität zum Einsehen von geliehenen Dokumenten selektiert<br />

• Benutzer hat bestimmtes Dokument selektiert<br />

RELEVANTE EINGABEDATEN<br />

Funktionalität operiert auf bereits gewähltem Dokument. K<strong>ein</strong>e weiteren Eingabedaten<br />

AUSNAHMEN<br />

Fehler bei Verbindung zu Bibliothekssystem<br />

ERGEBNIS<br />

Benutzer bekommt Meldung über die erfolgreich verlängerte Abgabe<strong>fr</strong>ist<br />

NACHBEDINGUNGEN<br />

Fristverlängerung wurde im Bibliothekssystem <strong>ein</strong>gepegt<br />

SZENARIO<br />

1. Benutzer wählt Benutzerkonto<br />

2. Benutzer wählt Funktionalität zur Anzeige von Geliehenen Dokumenten<br />

3. Benutzer wählt bestimmtes Dokument<br />

4. Benutzer wählt die Funktionalität zur Verlängerung <strong>der</strong> Ausleihe<br />

5. Ausleihe wird verlängert<br />

168


15.3. FUNKTIONALE ANFORDERUNGEN<br />

ANWENDUNGSFALL<br />

Prol <strong>ein</strong>stellen<br />

ZWECK<br />

Benutzer k<strong>an</strong>n Prol spezizieren, so dass die Ergebnispräsentation von Such<strong>an</strong><strong>fr</strong>agen<br />

<strong>an</strong> s<strong>ein</strong>e persönlichen Verhältnisse <strong>an</strong>gepasst wird<br />

AKTEURE<br />

Authentizierter Benutzer<br />

EREIGNIS<br />

Benutzer möchte Prol <strong>an</strong>geben<br />

VORBEDINGUNGEN<br />

• Benutzer ist authentiziert<br />

• Benutzer hat das Benutzerkonto geönet<br />

• Benutzer hat die Funktionalität zum Einstellen des Prols selektiert<br />

RELEVANTE EINGABEDATEN<br />

Angabe von benutzerspezischen Daten bzgl. individueller Präferenzen bei <strong>der</strong> Dokumentensuche<br />

u. ä.<br />

AUSNAHMEN<br />

Fehler bei Verbindung zu Bibliothekssystem<br />

ERGEBNIS<br />

Benutzer bekommt erfolgreich <strong>ein</strong>gestelltes Benutzerprol <strong>an</strong>gezeigt<br />

NACHBEDINGUNGEN<br />

Benutzerprol ist persistent gespeichert und k<strong>an</strong>n für Personalisierungszwecke vom System<br />

genutzt werden<br />

SZENARIO<br />

1. Benutzer wählt Benutzerkonto<br />

2. Benutzer wählt Funktionalität zur Einstellung s<strong>ein</strong>es Prols<br />

3. Benutzer stellt Prol <strong>ein</strong><br />

169


KAPITEL 15. ANFORDERUNGSDEFINITION<br />

Dokumente <strong>ein</strong>sehen<br />

ANWENDUNGSFALL<br />

Geliehene Dokumente <strong>ein</strong>sehen<br />

ZWECK<br />

Benutzer k<strong>an</strong>n s<strong>ein</strong>e aktuell ausgeliehenen Dokumente <strong>ein</strong>sehen<br />

AKTEURE<br />

Authentizierter Benutzer<br />

EREIGNIS<br />

Benutzer möchte s<strong>ein</strong>e aktuell ausgeliehenen Dokumente <strong>ein</strong>sehen<br />

VORBEDINGUNGEN<br />

• Benutzer ist authentiziert<br />

• Benutzer hat das Benutzerkonto geönet<br />

• Benutzer hat die Funktionalität zum Einsehen geliehener Dokumente selektiert<br />

RELEVANTE EINGABEDATEN<br />

k<strong>ein</strong>e<br />

AUSNAHMEN<br />

Fehler bei Verbindung zu Bibliothekssystem<br />

ERGEBNIS<br />

Benutzer bekommt Übersicht mit s<strong>ein</strong>en aktuell ausgeliehenen Dokumenten <strong>an</strong>gezeigt<br />

NACHBEDINGUNGEN<br />

k<strong>ein</strong>e<br />

SZENARIO<br />

1. Benutzer wählt Benutzerkonto<br />

2. Benutzer wählt Funktionalität zur Anzeige von Dokumenten<br />

3. Benutzer wählt Funktionalität zur Anzeige von ausgeliehenen Dokumenten<br />

170


15.3. FUNKTIONALE ANFORDERUNGEN<br />

ANWENDUNGSFALL<br />

Vorbestellungen <strong>ein</strong>sehen<br />

ZWECK<br />

Benutzer k<strong>an</strong>n s<strong>ein</strong>e aktuell vorbestellten Dokumente <strong>ein</strong>sehen<br />

AKTEURE<br />

Authentizierter Benutzer<br />

EREIGNIS<br />

Benutzer möchte s<strong>ein</strong>e aktuell vorbestellten Dokumente <strong>ein</strong>sehen<br />

VORBEDINGUNGEN<br />

• Benutzer ist authentiziert<br />

• Benutzer hat das Benutzerkonto geönet<br />

• Benutzer hat die Funktionalität zum Einsehen vorbstellter Dokumente selektiert<br />

RELEVANTE EINGABEDATEN<br />

k<strong>ein</strong>e<br />

AUSNAHMEN<br />

Fehler bei Verbindung zu Bibliothekssystem<br />

ERGEBNIS<br />

Benutzer bekommt Übersicht mit s<strong>ein</strong>en aktuell vorbestellten Dokumenten <strong>an</strong>gezeigt<br />

NACHBEDINGUNGEN<br />

k<strong>ein</strong>e<br />

SZENARIO<br />

1. Benutzer wählt Benutzerkonto<br />

2. Benutzer wählt Funktionalität zur Anzeige von Dokumenten<br />

3. Benutzer wählt Funktionalität zur Anzeige von vorbestellten Dokumenten<br />

ANWENDUNGSFALL<br />

Vormals geliehene Dokumente <strong>ein</strong>sehen<br />

ZWECK<br />

Benutzer k<strong>an</strong>n s<strong>ein</strong>e vormals ausgeliehenen Dokumente <strong>ein</strong>sehen<br />

AKTEURE<br />

Authentizierter Benutzer<br />

EREIGNIS<br />

Benutzer möchte s<strong>ein</strong>e vormals ausgeliehenen Dokumente <strong>ein</strong>sehen<br />

VORBEDINGUNGEN<br />

• Benutzer ist authentiziert<br />

• Benutzer hat das Benutzerkonto geönet<br />

• Benutzer hat die Funktionalität zum Einsehen vormals Dokumente selektiert<br />

RELEVANTE EINGABEDATEN<br />

k<strong>ein</strong>e<br />

AUSNAHMEN<br />

Fehler bei Verbindung zu Bibliothekssystem<br />

ERGEBNIS<br />

Benutzer bekommt Übersicht mit s<strong>ein</strong>en vormals ausgeliehenen Dokumenten <strong>an</strong>gezeigt<br />

NACHBEDINGUNGEN<br />

k<strong>ein</strong>e<br />

SZENARIO<br />

1. Benutzer wählt Benutzerkonto<br />

2. Benutzer wählt Funktionalität zur Anzeige von Dokumenten<br />

3. Benutzer wählt Funktionalität zur Anzeige von vormals ausgeliehenen Dokumenten<br />

171


KAPITEL 15. ANFORDERUNGSDEFINITION<br />

Onlinehilfe au<strong>fr</strong>ufen<br />

ANWENDUNGSFALL<br />

Tutorial lesen<br />

ZWECK<br />

Benutzer k<strong>an</strong>n sich in <strong>ein</strong>em Tutorial über die Anwendung des Systems informieren<br />

AKTEURE<br />

Gast, authentizierter Benutzer<br />

EREIGNIS<br />

Benutzer hat allgem<strong>ein</strong>e Probleme im Umg<strong>an</strong>g mit dem System<br />

VORBEDINGUNGEN<br />

k<strong>ein</strong>e<br />

RELEVANTE EINGABEDATEN<br />

k<strong>ein</strong>e<br />

AUSNAHMEN<br />

k<strong>ein</strong>e<br />

ERGEBNIS<br />

Benutzer bekommt Tutorial <strong>an</strong>gezeigt<br />

NACHBEDINGUNGEN<br />

k<strong>ein</strong>e<br />

SZENARIO<br />

1. Benutzer hat <strong>ein</strong> allgem<strong>ein</strong>es Problem im Umg<strong>an</strong>g mit dem System<br />

2. Benutzer ruft das Tutorial auf<br />

3. Benutzer k<strong>an</strong>n s<strong>ein</strong> Problem ggf. mit Hilfe des Tutorials lösen<br />

ANWENDUNGSFALL<br />

Kontextsensitive Online-Hilfe benutzen<br />

ZWECK<br />

Benutzer k<strong>an</strong>n abhängig von s<strong>ein</strong>er Position im System <strong>ein</strong> Hilfesystem benutzen<br />

AKTEURE<br />

Gast, authentizierter Benutzer<br />

EREIGNIS<br />

Benutzer hat Probleme im Umg<strong>an</strong>g mit <strong>ein</strong>em bestimmten Teil des Systems<br />

VORBEDINGUNGEN<br />

k<strong>ein</strong>e<br />

RELEVANTE EINGABEDATEN<br />

k<strong>ein</strong>e<br />

AUSNAHMEN<br />

k<strong>ein</strong>e<br />

ERGEBNIS<br />

Benutzer bekommt abhängig von s<strong>ein</strong>er Position im System Hilfe <strong>an</strong>gezeigt<br />

NACHBEDINGUNGEN<br />

k<strong>ein</strong>e<br />

SZENARIO<br />

1. Benutzer hat <strong>ein</strong> Problem im Umg<strong>an</strong>g mit <strong>ein</strong>em bestimmten Teil des Systems<br />

2. Benutzer ruft die kontextsensitive Hilfe auf<br />

3. Benutzer k<strong>an</strong>n s<strong>ein</strong> Problem ggf. mit Hilfe <strong>der</strong> kontextsensitiven Hilfe lösen<br />

172


15.4. NICHTFUNKTIONALE ANFORDERUNGEN<br />

ANWENDUNGSFALL<br />

Live Chat betreten<br />

ZWECK<br />

Benutzer k<strong>an</strong>n sich mit Mitarbeitern <strong>der</strong> Bibliothek und ggf. <strong>an</strong><strong>der</strong>en Benutzern austauschen<br />

AKTEURE<br />

Gast, authentizierter Benutzer<br />

EREIGNIS<br />

Benutzer möchte sich mit Mitarbeitern <strong>der</strong> Bibliothek und ggf. <strong>an</strong><strong>der</strong>en Benutzern<br />

austauschen<br />

VORBEDINGUNGEN<br />

k<strong>ein</strong>e<br />

RELEVANTE EINGABEDATEN<br />

k<strong>ein</strong>e<br />

AUSNAHMEN<br />

Fehler beim betreten des Live-Chat-Systems<br />

ERGEBNIS<br />

Benutzer bendet sich in Chatroom<br />

NACHBEDINGUNGEN<br />

k<strong>ein</strong>e<br />

SZENARIO<br />

1. Benutzer sucht direkten Kontakt zu <strong>ein</strong>em Bibliothekaren o<strong>der</strong> <strong>ein</strong>em <strong>an</strong><strong>der</strong>en Benutzer<br />

2. Benutzer betritt den Live-Chat<br />

15.4. Nichtfunktionale Anfor<strong>der</strong>ungen<br />

Wichtige Anfor<strong>der</strong>ungen sind vor allem:<br />

• Ausfallsicherheit: beschreibt die Wahrsch<strong>ein</strong>lichkeit des Versagens <strong>ein</strong>es Systems<br />

während des Betriebes.<br />

• Effizienz: bezeichnet die Perform<strong>an</strong>z von Programmen und Hardware bezüglich des<br />

Resourcenverbrauchs und <strong>der</strong> Qualität <strong>der</strong> Ausgabe.<br />

• Übersichtlichkeit: die Benutzungsoberäche und Ausgabe sollen gut geordnet und<br />

geglie<strong>der</strong>t werden, damit m<strong>an</strong> den Hauptinhalt schnell nden k<strong>an</strong>n.<br />

• Angemessener Installations-/Wartungsaufw<strong>an</strong>d: die Installation und Wartung<br />

des Systems sollen nicht so kompliziert und schwer s<strong>ein</strong>.<br />

• Vollständige Dokumentation: wie z.B. Anfor<strong>der</strong>ungsdenition, Entwurf, Sourcecode,<br />

Testdokumentation und Installations- und Wartungsunterlagen sind unentbehrliche<br />

Best<strong>an</strong>dteile <strong>ein</strong>es Projektes.<br />

• Datensicherheit: Umg<strong>an</strong>g mit sicherheitsrelev<strong>an</strong>ten Daten, Sicherheit bei <strong>der</strong> Datenübertragung,<br />

Erfüllung <strong>der</strong> Datenschutzaspekte nach nie<strong>der</strong>sächsischem Datenschutzgesetz.<br />

Die Benutzerprolverwaltung wird später teilweise vom Portaldienst<br />

übernommen werden.<br />

173


KAPITEL 15. ANFORDERUNGSDEFINITION<br />

• Barriere<strong>fr</strong>eiheit: Der Dienst soll im Rahmen des Möglichen den Ansprüchen <strong>der</strong><br />

Barriere<strong>fr</strong>eiheit gerecht werden.<br />

15.5. Benutzungsoberäche<br />

15.5.1. Allgem<strong>ein</strong>es<br />

Die Bedienung des Systems soll mittels Browser über <strong>ein</strong>e HTML-Oberäche erfolgen.<br />

Dies erfolgt im Kontext des Liferay-Portals. Dabei werden jeweils alle aktuell verfügbaren<br />

Funktionen in <strong>der</strong> Navigationsbox im linken Bereich des Browserfensters zu sehen s<strong>ein</strong>.<br />

Diese Boxen werden als Portlets im Portal integriert. Funktionen, die vom Benutzer wegen<br />

m<strong>an</strong>geln<strong>der</strong> Rechte nicht ausgeführt werden können, werden nicht <strong>an</strong>gezeigt. Dabei wird<br />

es 2 Versionen geben - <strong>ein</strong>e allgem<strong>ein</strong>e Ausführung für Gäste, sowie <strong>ein</strong>e Version mit allen<br />

Funktionalitäten, die für <strong>ein</strong>e vollständige Nutzung <strong>der</strong> Portlets nötig sind und nur von<br />

<strong>ein</strong>geloggten Benutzern genutzt werden k<strong>an</strong>n.<br />

Abbildung 15.2.: Gesamt<strong>an</strong>sicht<br />

174


15.5. BENUTZUNGSOBERFLÄCHE<br />

15.5.2. Navigation<br />

Mittels <strong>der</strong> Navigation ist es dem Benutzer möglich alle Funktionalitäten direkt zu erreichen.<br />

Abbildung 15.3.: Portlet - Navigation<br />

15.5.3. Suche<br />

Die Suche ist die zentrale Schnittstelle und gibt dem Benutzer die Möglichkeit nach Dokumenten<br />

zu suchen. Dabei ist in <strong>ein</strong>fache Suche und erweiterte Suche zu unterscheiden.<br />

<strong>ein</strong>fache Suche<br />

Bei <strong>der</strong> <strong>ein</strong>fachen Suche ist es dem Benutzer nur möglich zu entscheiden, ob er nur den<br />

lokalen Best<strong>an</strong>d <strong>der</strong> <strong>Uni</strong>bibliothek durchsuchen möchte o<strong>der</strong> global alle <strong>an</strong> die Suche<br />

<strong>an</strong>geschlossenen Bibliotheken. Die Gestaltung ist dabei möglichst <strong>ein</strong>fach gehalten, um<br />

dem Benutzer <strong>ein</strong>e intuitive Verwendung zu ermöglichen.<br />

erweiterte Suche<br />

Abbildung 15.4.: Portlet - <strong>ein</strong>fache Suche<br />

Die erweiterte Suche bietet dem Benutzer die eigenständige Anpassung <strong>der</strong> Suche. Er<br />

hat dabei die Möglichkeit, die gewünschten Dokumenttypen zu wählen, den Suchraum<br />

zu bestimmen sowie <strong>ein</strong>e sehr spezielle Such<strong>an</strong><strong>fr</strong>age mit mehreren Suchkriterien in verschiedenen<br />

wählbaren Bereichen zu erstellen. Diese Suche richtet sich <strong>an</strong> Benutzer, die<br />

sich mit <strong>der</strong> Bibliotheksrecherche auskennen und gezielt nach bestimmten Werken suchen<br />

möchten.<br />

175


KAPITEL 15. ANFORDERUNGSDEFINITION<br />

Abbildung 15.5.: Portlet - erweiterte Suche<br />

15.5.4. Ergebnisausgabe<br />

Die Ergebnisse <strong>der</strong> Suche werden in <strong>ein</strong>em separaten Portlet dargestellt.<br />

Kurzdarstellung<br />

Die Kurzdarstellung liefert <strong>ein</strong>e kurze Übersicht über die gefundenen Werke. Diese besteht<br />

aus Titel, Autor, Ersch<strong>ein</strong>ungsjahr, Dokumenttyp und Status. Der Benutzer k<strong>an</strong>n sich<br />

damit schnell <strong>ein</strong>en Überblick über <strong>ein</strong>e gröÿere Anzahl von Treern verschaen, ohne die<br />

Details jedes Titels genauer <strong>an</strong>sehen zu müssen.<br />

176


15.5. BENUTZUNGSOBERFLÄCHE<br />

Abbildung 15.6.: Portlet - Ergebnisausgabe<br />

Detaildarstellung<br />

Die Detaildarstellung ersch<strong>ein</strong>t nach Klick des Benutzers auf <strong>ein</strong>en Titel in <strong>der</strong> Kurzdarstellung.<br />

Sie liefert dem Benutzer alle Informationen und Details über dieses Werk, die<br />

im Katalog vorh<strong>an</strong>den und für ihn von Interesse sind.<br />

177


KAPITEL 15. ANFORDERUNGSDEFINITION<br />

Abbildung 15.7.: Portlet - Ergebnisausgabe mit Details<br />

15.5.5. Benutzerkonto<br />

Das Portlet Benutzerkonto bietet dem Benutzer die Möglichkeit <strong>der</strong> Anpassung s<strong>ein</strong>er<br />

Daten und Einstellungen. Er k<strong>an</strong>n zum <strong>ein</strong>en s<strong>ein</strong>e persönlichen Daten, wie s<strong>ein</strong>e Anschrift<br />

o<strong>der</strong> E-Mailadresse <strong>ein</strong>sehen, wird zur Än<strong>der</strong>ung dieser Daten aber auf das globale<br />

Account-Portlet des Liferay Systems verwiesen. Weiterhin bietet dieses Portlet die Möglichkeit,<br />

<strong>ein</strong>e Vor<strong>ein</strong>stellung <strong>der</strong> Suchkriterien <strong>der</strong> erweiterten Suche vorzunehmen, sodass<br />

<strong>der</strong> Benutzer hier <strong>ein</strong>e persönliche Präferenz auswählen k<strong>an</strong>n, die d<strong>an</strong>n jedes mal bei<br />

Verwendung vor<strong>ein</strong>gestellt wird.<br />

178


15.5. BENUTZUNGSOBERFLÄCHE<br />

Abbildung 15.8.: Portlet - Benutzerkonto<br />

Unter Such<strong>ein</strong>stellungen hat <strong>der</strong> Benutzer die Möglichkeit s<strong>ein</strong>e St<strong>an</strong>dard-Suchkriterien<br />

zu verän<strong>der</strong>n. Die hier vorgenommenen Einstellungen werden als Vorgabe für die <strong>ein</strong>fache<br />

bzw. erweiterte Suche des Benutzers genommen.<br />

Abbildung 15.9.: Benutzerkonto - Such<strong>ein</strong>stellungen<br />

Die Dokumentenübersicht beitet dem Benutzer <strong>ein</strong>en Einlick in s<strong>ein</strong>en aktuellen Best<strong>an</strong>d<br />

<strong>an</strong> ausgeliehenen Dokumenten.<br />

179


KAPITEL 15. ANFORDERUNGSDEFINITION<br />

Der Benutzer erhält ausserdem <strong>ein</strong>en Überblich über abgelaufene Ausleih<strong>fr</strong>isten, ggf. fällige<br />

Mahngebüren und k<strong>an</strong>n die für ihn vorgemerkten Dokumente <strong>ein</strong>sehen bzw. Vormerkungen<br />

rückgängig machen (löschen). Desweiteren soll das Verlängern ausgeliehener<br />

Dokumente hier möglich s<strong>ein</strong>.<br />

Abbildung 15.10.: Benutzerkonto - Dokumentenübersicht<br />

Im Abschnitt Weitere Einstellungen k<strong>an</strong>n <strong>der</strong> Benutzer das Benachrichtigungssystem<br />

des Portals bezüglich des Bibliothessystems kongurieren und soll s<strong>ein</strong>e Account-Daten<br />

für <strong>ein</strong>gebundene digitale Bibliotheken verwalten.<br />

Gepl<strong>an</strong>t ist das durch <strong>ein</strong>e Schnittstelle zum Message-System des Portals (das es in dieser<br />

Form so noch nicht gibt) Nachrichten z.B. in Form von eMails zu generieren um dem<br />

Benutzer z.B. über fällige Rückgaben von Dokumenten zu Informieren. Hier sind wir in<br />

<strong>der</strong> Implementierung aber auf die Zusammenarbeit mit dem Entwickler-Team des Benachrichtigungssystems<br />

für Liferay <strong>an</strong> <strong>der</strong> <strong>Uni</strong> <strong>Oldenburg</strong> <strong>an</strong>gewiesen.<br />

Desweiteren sollen hier Zug<strong>an</strong>gsdaten von den <strong>ein</strong>gebundenen digitalen Bibliotheken abgelegt<br />

werden, um so weit wie möglich <strong>ein</strong>e externe (digitale) Ausleihe zu automatisieren<br />

o<strong>der</strong> zumindest die entsprechenden Daten vorzuhalten.<br />

180


15.5. BENUTZUNGSOBERFLÄCHE<br />

Abbildung 15.11.: Benutzerkonto - Weitere Einstellungen<br />

15.5.6. mögliche Erweiterungen<br />

Um die Benutzer<strong>fr</strong>eundlichkeit des <strong>Bibliotheksdienste</strong>s zu verbessern, können weitere sinnvolle<br />

Portlets in das Portal integriert werden. Diese Möglichkeiten stehen nur den <strong>an</strong>gemeldeten<br />

Benutzern zur Verfügung und können individuell hinzugefügt und platziert werden.<br />

Abbildung 15.12.: mögliche Erweiterungsportlets<br />

Eine weitere denkbare Erweiterung wäre die Integration <strong>ein</strong>es Portlets für Lesezeichen.<br />

Der <strong>an</strong>gemeldete Benutzer soll damit die Möglichkeit erhalten sich <strong>ein</strong>zelne Dokumenten<br />

181


KAPITEL 15. ANFORDERUNGSDEFINITION<br />

aus dem Suchergebnis als Lesezeichen zu denieren, so dass er auf diese zu <strong>ein</strong>em späteren<br />

Zeitpunkt direkt zugreifen k<strong>an</strong>n.<br />

Desweiteren können d<strong>an</strong>n <strong>ein</strong>zelne, o<strong>der</strong> ggf. alle Lesezeichen inclusive <strong>der</strong> nötigen Metadaten<br />

in <strong>ein</strong> geeignetes Format (z.B. als .txt, BibTeX o<strong>der</strong> html-Datei) exportiert und<br />

dem Benutzer zur Weitervearbeitung zur Verfügung gestellt werden.<br />

Abbildung 15.13.: mögliche Erweiterung: Lesezeichen Portlet<br />

15.6. Fehlerverhalten<br />

Fehlerhafte Eingaben und Bedienungsfehler des Benutzers sollen schon im Vorfeld durch<br />

<strong>ein</strong>en <strong>ein</strong>heitlichen Aufbau <strong>der</strong> Benutzungsoberäche und damit intuitive Bedienung minimiert<br />

werden. Dennoch auftretende Fehl<strong>ein</strong>gaben werden direkt abgef<strong>an</strong>gen und <strong>der</strong><br />

Benutzer erhält <strong>ein</strong>e aussagekräftige Fehlermeldung, meist mit <strong>der</strong> Option, die Eingabe<br />

zu wie<strong>der</strong>holen.<br />

Alle <strong>an</strong><strong>der</strong>en eventuell auftretenden Fehlerfälle (wie z. B. <strong>ein</strong> Systemabsturz o<strong>der</strong> fehlende<br />

Datenb<strong>an</strong>kverbindung) werden ebenfalls mit präzisen Fehlermeldungen und entsprechenden<br />

Anweisungen für den konkreten Fehlerfall abgef<strong>an</strong>gen. Soweit möglich, sollen die<br />

Fehler vom Programm selbst behoben werden, z.B. versuchen, die Datenb<strong>an</strong>kverbindung<br />

wie<strong>der</strong> herzustellen.<br />

Bei kritischen Fehlern soll das System nach Möglichkeit in <strong>ein</strong>em konsistenten Zust<strong>an</strong>d<br />

heruntergefahren werden.<br />

15.7. Dokumentations<strong>an</strong>for<strong>der</strong>ungen<br />

Mit dem System muss <strong>ein</strong>e vollständige Dokumentation übergeben werden, die folgende<br />

Dokumente umfasst:<br />

• Anfor<strong>der</strong>ungsdenition<br />

• Entwurf<br />

• Sourcecode mit Javadoc<br />

• Implementierungs- und Testdokumentation<br />

182


15.8. AKZEPTANZKRITERIEN<br />

• Installations- und Wartungsunterlagen.<br />

Dabei können die Dokumente natürlich auch in elektronischer Form übergeben werden.<br />

15.8. Akzept<strong>an</strong>zkriterien<br />

Das System muss <strong>ein</strong>en <strong>ein</strong>heitlichen Zugri auf die gewählten Bibliothekssysteme bieten<br />

sowie <strong>ein</strong>e entsprechende Verwaltung <strong>der</strong> <strong>an</strong>fallenden Daten zu Ausleihe und Benutzerverwaltung.<br />

Wichtig ist weiterhin <strong>ein</strong>e korrekte Integration in die Liferay-Portalumgebung<br />

und gute Interaktion mit den übergreifenden Funktionen des Portals (Themes, benutzerdenierte<br />

Portlets, usw.). Technisch müssen die erstellten Portlets natürlich dem JSR168<br />

St<strong>an</strong>dard entsprechen um auch bei <strong>ein</strong>em Wechsel <strong>der</strong> Umgebung <strong>ein</strong>w<strong>an</strong>d<strong>fr</strong>ei funktionsfähig<br />

zu bleiben. Die Kriterien werden in <strong>ein</strong>em Abnahmetest geprüft und nach erfolgreichem<br />

Bestehen dieses Tests k<strong>an</strong>n das System <strong>fr</strong>eigegeben werden.<br />

183


16. Entwurf<br />

16.1. Einleitung<br />

Der vorliegende Entwurf beschreibt <strong>Bibliotheksdienste</strong>, die in <strong>ein</strong>em JSR-168-konformen<br />

Web-Portal referenziert werden sollen. Der Haupt<strong>an</strong>teil liegt hierbei in <strong>der</strong> Ausarbeitung<br />

<strong>ein</strong>er eektiven Suchfunktion mit <strong>ein</strong>er sinnvollen Präsentation <strong>der</strong> Suchergebnisse auf<br />

<strong>ein</strong>em Bibliothekskatalog. Dabei liegt <strong>der</strong> Schwerpunkt in <strong>der</strong> Integration des <strong>Oldenburg</strong>er<br />

Regionales Bibliotheks- und Informationssystem, kurz ORBIS. Es sollen aber auch<br />

externe Online-Bibliotheken <strong>ein</strong>gebunden werden. Im Vor<strong>der</strong>grund steht zudem noch die<br />

Entwicklung <strong>ein</strong>er für Benutzer <strong>fr</strong>eundliche und innovative Arbeitsumgebung. Die weiteren<br />

Anfor<strong>der</strong>ungen <strong>an</strong> die zu entwickelnden Software sind in <strong>der</strong> dazugehörigen Anfor<strong>der</strong>ungsdenition<br />

beschrieben.<br />

Das Projekt ist integriert in <strong>der</strong> Entwicklung <strong>ein</strong>es Portals für Studierende <strong>der</strong> <strong>Uni</strong>versität<br />

<strong>Oldenburg</strong>. Dabei h<strong>an</strong>delt es es sich um <strong>ein</strong> länger<strong>fr</strong>istig <strong>an</strong>gelegtes, geför<strong>der</strong>tes<br />

Entwicklungsprojekt mit dem Namen i 3 sic!. In diesem Portal werden die für das Studium<br />

wichtige Prozesse zusammengefasst <strong>an</strong>geboten. Somit wird dem Student ermöglicht auf<br />

alle wichtigen Informationen und verwaltungstechnischen Dienste zuzugreifen. Das <strong>Studierendenportal</strong><br />

ermöglicht es den Benutzern auÿerdem, ihre Benutzungsoberäche <strong>an</strong> die<br />

eigenen Bedürfnisse <strong>an</strong>zupassen und so schnell und problemlos alle Dienste zu nutzen, ohne<br />

sich bei jedem Subsystem geson<strong>der</strong>t authentizieren zu müssen. Weitere Informationen<br />

zum i 3 sic!-Projekt können in dem dazugehörigen Projektbericht nachgelesen werden.<br />

Zur Gestaltung <strong>der</strong> <strong>Bibliotheksdienste</strong> werden Portlet-Anwendungen entwickelt, die innerhalb<br />

des Portals verwendet werden können. Durch die Einhaltung des JSR-168 St<strong>an</strong>dard<br />

wird die <strong>ein</strong>w<strong>an</strong>d<strong>fr</strong>eie Funktion <strong>der</strong> Portlets innerhalb des Li<strong>fr</strong>ay-Portals o<strong>der</strong> bei <strong>ein</strong>em<br />

Wechsel zur <strong>ein</strong>er neuen Umgebung gesichert. Die Umsetzung <strong>der</strong> Anwendung erfolgt<br />

mit <strong>ein</strong>er J2EE Referenz-Architektur. Zur Ausarbeitung <strong>der</strong> Applikationslogik werden<br />

Enterprise JavaBe<strong>an</strong>s (EJB) verwendet. JavaServer Pages (JSP) kommen für die Generierung<br />

<strong>der</strong> Oberäche zum Einsatz. Für den Zugri auf die projektinterne Datenhaltung<br />

wird Hibernate als Persistenz-Framework <strong>ein</strong>gesetzt. Durch den starken Einsatz <strong>der</strong> Java-<br />

Technologien wird die Software <strong>ein</strong>fach skalierbar und mit geringem Aufw<strong>an</strong>d wart- und<br />

erweiterbar.<br />

Als Basistechnologien (-themen) werden für den Entwurf von <strong>der</strong> Projektgruppe erarbeitet<br />

bzw. verwendet:<br />

• Web-Technologien: Verwendung von Portalen, WebServices und Applicationsservern<br />

• Informationssysteme: Content-M<strong>an</strong>agement und bibliographische Metadaten<br />

• <strong>Bibliotheksdienste</strong>: Einarbeitung in Recherchemethoden<br />

Der Entwurf wurde entwickelt, indem die Projektgruppe intern für je <strong>ein</strong>en spezischen<br />

184


16.2. ARCHITEKTUR<br />

Bereich aufgeteilt wurde. So entst<strong>an</strong>den vier Untergruppen für die nachfolgend gen<strong>an</strong>nten<br />

Bereiche. Diese Aufteilung dient ebenfalls zur Weiterentwicklung des Projekts.<br />

• Benutzerkonto: Verwaltung <strong>der</strong> Einstellungen des Benutzers<br />

• Mediator/Wrapper: Kommunikation mit den verschiedenen Bibliothekssystemen<br />

• Logik: Gestaltung <strong>der</strong> Suchfunktion, Entwicklung <strong>der</strong> Kommunikation zwischen<br />

Suche und Mediator<br />

• GUI: Gestaltung <strong>der</strong> Benutzungsoberäche<br />

In diesem Entwurfsdokument wird die Umsetzung des Projektauftrages beschrieben. Im<br />

ersten Kapitel wird die Architektur <strong>der</strong> Software dargestellt. Diese gibt <strong>ein</strong>en Überblick<br />

des Anwendungsdesigns und dessen Schichten wie<strong>der</strong>, wobei die <strong>ein</strong>zelnen Schichtelemente<br />

in den darauf folgenden Kapitel durch Klassenbeschreibungen und Sequenzdiagrammen<br />

vertieft werden. Die Interaktion zwischen den Komponenten <strong>der</strong> Software werden<br />

im Architektur-Kapitel ebenfalls durch Sequenzdiagrammen und weitere Beschreibungen<br />

vertieft. Die beiden nächsten Kapitel präsentieren mit <strong>der</strong> Suchlogik und dem Mediator/Wrapper<br />

den zentralen Bereich dieses Projektes. In diesem Bereich werden die<br />

Hauptaufgaben <strong>der</strong> Software, nämlich die Suche innerhalb <strong>der</strong> verschiedenen Bibliothekskatalogen,<br />

vollzogen. In dem Benutzerkonto, das in dem darauf folgenden Konto dargestellt<br />

wird, k<strong>an</strong>n m<strong>an</strong> R<strong>an</strong>dbedingungen <strong>der</strong> Suche o<strong>der</strong> weitere Informationen <strong>ein</strong>sehen<br />

und teilweise bestimmen. Das Kapitel Benutzungsoberäche präsentiert die Arbeitsäche<br />

für den Anwen<strong>der</strong> <strong>der</strong> Software. Die GUI stellt alle Funktionen <strong>der</strong> vorher beschriebenen<br />

Komponenten dem Benutzer zu Verfügung. Die für den Betrieb <strong>der</strong> Anwendung benötigte<br />

Datenb<strong>an</strong>k wird im vorletzten Kapitel dargestellt. Schlieÿlich endet das Dokument mit<br />

<strong>der</strong> Beschreibung <strong>der</strong> Vorgehensweise beim Testen. Abgerundet wird dieses Entwurfsdokument<br />

durch das Glossar. In ihm werden viele technische Begrie mit weiterführenden<br />

Referenzen erklärt.<br />

16.2. Architektur<br />

16.2.1. Technologiewahl<br />

Für die Umsetzung <strong>der</strong> denierten Anfor<strong>der</strong>ungen werden nun zunächst die Technologien<br />

betreenden Entwurfsentscheidungen erläutert.<br />

Anbindung externer <strong>Bibliotheksdienste</strong><br />

Um den Anfor<strong>der</strong>ungen sowohl bezüglich des Antwortverhaltens als auch <strong>der</strong> Erweiterbarkeit<br />

des Systems gerecht zu werden, wird <strong>der</strong> Zugri auf die <strong>an</strong>gebundenen externen<br />

<strong>Bibliotheksdienste</strong> in sog. Wrappern gekapselt, die in <strong>der</strong> Lage sind, parallel zu<strong>ein</strong><strong>an</strong><strong>der</strong><br />

An<strong>fr</strong>agen <strong>an</strong> die verschiedenen Quellen zu stellen.<br />

Da Parallelität in <strong>der</strong> Entwicklung von Informationssystemen <strong>der</strong> vorliegenden Gröÿenordnung<br />

grundsätzlich <strong>ein</strong>e äuÿerst <strong>an</strong>spruchsvolle Aufgabe darstellt und erfahrungsgemäÿ<br />

häug Quelle von schwer zu reproduzierendem Fehlverhalten ist, werden diese Wrapper<br />

als st<strong>an</strong>dardisierte Softwarekomponenten Message Drive Be<strong>an</strong>s (MDBs) umgesetzt,<br />

185


KAPITEL 16. ENTWURF<br />

die ihrerseits auf das st<strong>an</strong>dardisierte Java Message Service (JMS) API zurückgreifen. Auf<br />

die für MDBs notwendige Laufzeitumgebung, den Applikationsserver, wird weiter unten<br />

näher <strong>ein</strong>geg<strong>an</strong>gen.<br />

Datenhaltungsschicht<br />

Neben den für alle auch nicht authentizierte Benutzer zugänglichen Möglichkeiten<br />

zur Suche sind auch diverse Funktionalitäten umzusetzen, die nach erfolgreicher Authentizierung<br />

das Ablegen von projektspezischen Daten erfor<strong>der</strong>n, etwa die Such-Historie<br />

o<strong>der</strong> auch Funktionalitäten aus den denierten Anwendungsfällen des Benutzerkontos.<br />

Für diese Datenhaltung wird das relationale DBMS MySQL gewählt. Zu den Vorteilen<br />

dieses Systems gehören s<strong>ein</strong>e Lizenzkosten<strong>fr</strong>eiheit und Quelloenheit. Zudem wird es aufgrund<br />

s<strong>ein</strong>er Popularität ständig verbessert und weiterentwickelt, so dass es zum Zeitpunkt<br />

dieser Arbeit bereits über <strong>ein</strong>en relativ breiten Funktionalitätsumf<strong>an</strong>g verfügt. Dieser ist<br />

zwar nicht vergleichbar mit dem von Systemen wie etwa dem Oracle Database Server,<br />

reicht aber aller Einschätzung nach für die vorliegenden Anfor<strong>der</strong>ungen aus.<br />

Auÿerdem wird durch den Einsatz von Hibernate, auf den weiter unten näher <strong>ein</strong>geg<strong>an</strong>gen<br />

wird, <strong>ein</strong> hoher Grad <strong>an</strong> Unabhängigkeit vom unterstützten SQL-Sprachschatz des verwendeten<br />

DBMS erreicht. Bei wachsendem Funktionalitätsumf<strong>an</strong>g des <strong>Bibliotheksdienste</strong>s<br />

und damit möglicherweise verbundenen erhöhten Anfor<strong>der</strong>ungen <strong>an</strong> das zugrunde liegende<br />

DBMS sollte <strong>ein</strong> Wechsel auf <strong>ein</strong> mächtigeres System also relativ problemlos möglich<br />

s<strong>ein</strong>.<br />

Der Zugri auf das MySQL-DBMS vom J2EE-Applikationsserver aus erfolgt über die Java<br />

Database Connectivity (JDBC) API. Die Implementierung dieser Schnittstelle für MySQL<br />

trägt den Namen Connector/J und unterstützt in <strong>der</strong> gewählten Version 3.1.12 den JDBC<br />

3.0 St<strong>an</strong>dard. Die Operabilität mit JBoss und insbeson<strong>der</strong>e Hibernate gilt mittlerweile<br />

als erprobt.<br />

Geschäftslogik<br />

Applikationsserver JBoss<br />

Die Wahl des J2EE-Applikationsservers el bereits im Vorfeld <strong>der</strong> Arbeit dieser Projektgruppe<br />

auf JBoss, weshalb dies auch k<strong>ein</strong>e Entwurfsentscheidung dieser Projektgruppe<br />

darstellt und bereits in <strong>der</strong> Anfor<strong>der</strong>ungsdenition festgehalten wurde. Als entscheidendes<br />

Kriterium für JBoss k<strong>an</strong>n dessen Quelloenheit gesehen werden. Neben JBoss existiert<br />

zum Zeitpunkt dieses Projekts mit JOnAS lediglich <strong>ein</strong> weiterer J2EE-zertizierter Open-<br />

Source Applikationsserver, <strong>der</strong> allerdings noch nicht über <strong>ein</strong>e so groÿe Verbreitung und<br />

Bedeutung in <strong>der</strong> Wirtschaft verfügt wie JBoss.<br />

Hibernate<br />

Durch den bereits erwähnten Einsatz des Persistenz-Frameworks Hibernate wird <strong>ein</strong> gänzlich<br />

objektorientierter Entwurf des Datenmodells ermöglicht. So k<strong>an</strong>n auf <strong>ein</strong>en Datenb<strong>an</strong>kentwurf<br />

im r<strong>ein</strong> relationalen Sinne mit <strong>ein</strong>er in Data Denition L<strong>an</strong>guage (DDL)<br />

mündenden Spezikation des Datenmodells weitestgehend verzichtet werden.<br />

Schnittstellen<br />

Die Erzeugung <strong>der</strong> EJB-Interfaces (home interface, local home interface, remote interface<br />

und local interface) k<strong>an</strong>n bei <strong>der</strong> Entwicklung semi-automatisch durch Werkzeugunterstützung<br />

geschehen. Die Session Be<strong>an</strong>s können daher sowohl für den Remote-Zugri ausgelegt<br />

186


16.2. ARCHITEKTUR<br />

werden als auch für den Zugri von innerhalb <strong>der</strong> selben Virtual Machine mit höherer<br />

Perform<strong>an</strong>z.<br />

Da allerdings im Kontext dieses Projekt nicht von <strong>ein</strong>er physikalisch verteilten Architektur<br />

ausgeg<strong>an</strong>gen werden muss, werden die Session-Be<strong>an</strong>s hier lediglich mit den lokalen<br />

Interfaces ausgestattet. Erweiterbarkeit ist diesbezüglich mit sehr geringem Aufw<strong>an</strong>d gegeben.<br />

Präsentationsschicht<br />

Serverseitige Präsentation<br />

Die Präsentation von Daten und Funktionalität geschieht durch <strong>ein</strong> serverseitig generiertes<br />

Web-Frontend nach JSR-168. Integriert in den Applikationsserver JBoss steht hierfür das<br />

Portal Liferay in Kombination mit dem Web-Container Tomcat zur Verfügung. Tomcat<br />

ist <strong>der</strong> am weitesten verbreitete Container für Servlets und JSPs und wird als ozielle<br />

Referenz-Implementierung dieser Spezikationen im Java Community Process (JCP)<br />

benutzt.<br />

Um <strong>ein</strong>e hohe Lesbarkeit des Codes zur Seitengenerierung und damit verbunden die Einhaltung<br />

des Separation of Concerns Prinzips zu gewährleisten, wird auf JSP-Scriptlets<br />

weitestgehend verzichtet und die Ausgabe stattdessen mittels Custom-Tags realisiert. Dazu<br />

wird auf die ebenfalls im JCP als Referenz-Implementierung entwickelte JSP St<strong>an</strong>dard<br />

Tag Library (JSTL) zurückgegrien.<br />

Clientseitig<br />

Aufgrund <strong>der</strong> Einbettung des Projekts in das Portal müssen weitreichende Einschränkungen<br />

in Sachen Barriere<strong>fr</strong>eiheit in Kauf genommen werden. So ist etwa <strong>der</strong> Zugri auf<br />

das Portal und damit auch auf den Bibliotheksdienst dieses Projekts nur mit clientseitig<br />

aktiviertem Javascript möglich. Auch werden WAI-Richtlinien kaum konsequent<br />

befolgt und das generierte Markup entspricht bei strenger Auslegung k<strong>ein</strong>em des W3C<br />

spezizierten Dokumententyps. Diese Vorgaben sind durch die Projektgruppe nicht zu be<strong>ein</strong>uÿen.<br />

Die resultierenden Eigenschaften des <strong>Bibliotheksdienste</strong>s werden daher nicht <strong>an</strong><br />

formalen Spezikationen dieser Art gemessen, son<strong>der</strong>n <strong>an</strong> ihrer praktischen Operabilität<br />

in gängigen Browsern und den üblicherweise clientseitig verfügbaren Technologien.<br />

187


KAPITEL 16. ENTWURF<br />

16.2.2. Umzusetzende Anwendungs-Architektur<br />

Internet<br />

Clientseitige<br />

Präsentationsschicht (GUI)<br />

PG-Bibliotheksportalsystem<br />

HTTP<br />

Portlets<br />

JSPs<br />

Serverseitige<br />

Präsentationsschicht<br />

<br />

Geschäftslogik<br />

Geschäftslogikschicht<br />

<br />

Hibernate<br />

Wrapper<br />

<br />

Mediator<br />

Wrapper<br />

Datenzugriffsschicht<br />

JDBC<br />

(Connector/J)<br />

URICA<br />

Schnittstelle<br />

OAI Protocol<br />

for Metadata<br />

Harvesting<br />

JNDI /<br />

RMI-IIOP<br />

JNDI /<br />

RMI-IIOP<br />

JNDI /<br />

RMI-IIOP<br />

JNDI /<br />

RMI-IIOP<br />

MySQL<br />

Datenb<strong>an</strong>k<br />

URICA<br />

CiteSeer<br />

Datenhaltungsschicht<br />

Abbildung 16.1.: Grobarchitektur des <strong>Bibliotheksdienste</strong>s, schichtenorientierte Sicht<br />

188


16.2. ARCHITEKTUR<br />

Abbildung 16.1 stellt den Architekturentwurf <strong>der</strong> <strong>Bibliotheksdienste</strong>s dar und deutet dabei<br />

mit URICA und CiteSeer zwei <strong>an</strong>gebundene externe Bibliothekssysteme als Datenquellen<br />

<strong>an</strong>.<br />

Diese Architektur b<strong>ein</strong>haltet grundsätzlich drei abgekapselte Schichten und entspricht dem<br />

Model-View-Controller (MVC) Entwurfsmuster. Dabei übernimmt die Client-Schicht ausschlieÿlich<br />

Aspekte <strong>der</strong> Darstellung von Daten und Funktionalität (thin client). Von<br />

hier aus erfolgen Au<strong>fr</strong>ufe <strong>an</strong> den darunter liegenden Applikationsserver, dessen EJB-<br />

Komponenten ihrerseits auf die <strong>an</strong>gebundenen externen Systeme sowie auf <strong>ein</strong>e Datenb<strong>an</strong>k<br />

zugreifen, die für die Persistenz <strong>der</strong> Applikationsdaten sorgt.<br />

Die Schichtenbegrie, nach denen die weitere Entwurfsdokumentation geglie<strong>der</strong>t ist und<br />

die so auch bereits im vorigen Abschnitt zur Technologiewahl verwendet wurden seien<br />

hier wie folgt deniert:<br />

• Die Datenhaltungsschicht bilden zum Einen die externen Bibliothekssysteme und<br />

zum An<strong>der</strong>en das zugrundeliegende DBMS MySQL.<br />

• Als Schicht <strong>der</strong> Geschäftslogik werden die EJB-Komponenten (Session Be<strong>an</strong>s,<br />

Message Driven Be<strong>an</strong>s sowie assoziierte Hilfs- und Persistenzklassen) bezeichnet. Sie<br />

laufen im Kontext des EJB-Containers des JBoss Applikationsservers.<br />

• Die Präsentationsschicht glie<strong>der</strong>t sich in serverseitige und clientseitige Präsentation,<br />

wobei die Entwicklungsarbeit sich weitestgehend auf den serverseitigen Anteil,<br />

d. h. die im Portlet-Container des JBoss Applikationsservers laufenden Portlets und<br />

<strong>der</strong>en JSPs konzentriert.<br />

Der Applikationsserver ver<strong>ein</strong>t sowohl die beiden Aspekte Datenzugri und Bedienung<br />

von Nutzer<strong>an</strong><strong>fr</strong>agen <strong>der</strong> Geschäftslogik als auch die serverseitige Präsentation.<br />

Abbildung 16.2 stellt <strong>ein</strong>e kommentierte, komponentenorientierte Sicht auf die Architektur<br />

dar.<br />

189


KAPITEL 16. ENTWURF<br />

Abbildung 16.2.: Grobarchitektur des <strong>Bibliotheksdienste</strong>s, komponentenorientierte Sicht<br />

190


16.2. ARCHITEKTUR<br />

Kommunikationspartner<br />

In den folgenden drei Sequenzdiagrammen wird <strong>der</strong> Informationsaustausch zwischen den<br />

beteiligten Komponenten bei <strong>ein</strong>er typischen Suche dargestellt. Die Sequenzdiagramme<br />

sind durch Interaktionsreferenzen geschachtelt. Eine Suche wird durch <strong>ein</strong>en Benutzer<br />

<strong>an</strong>gestossen, <strong>der</strong> die gewünschten Suchparameter im GUI <strong>ein</strong>gibt. Die Suchparameter<br />

werden <strong>an</strong> die serverseitige Geschäftslogik weitergegeben und das Ergebnis <strong>der</strong> Suche<br />

wird dem Benutzer wie<strong>der</strong> im GUI <strong>an</strong>gezeigt (Abbildung 16.3).<br />

Abbildung 16.3.: Sequenzdiagramm für das gesamte System<br />

Die serverseitigen Komponenten bestehen aus EJBs für die Suchlogik, den Mediator und<br />

die Wrapper. In <strong>der</strong> SearchBe<strong>an</strong> werden die Benutzer<strong>ein</strong>gaben überprüft und aus den<br />

überprüften Parametern wird <strong>ein</strong> Search-Objekt erstellt. Dieses Search-Objekt wird <strong>an</strong><br />

den Mediator übergeben und als Ergebnis-Objekt wird <strong>ein</strong> SearchResultSet erwartet. Die<br />

Hauptaufgabe <strong>der</strong> Suchlogik ist das Sortieren und Bewerten <strong>der</strong> gefundenen Ergebnisse.<br />

Nach dem Sortieren wird das Ergebnis-Objekt noch im Benutzerkonto gespeichert und<br />

dadurch die Suchhistorie festgehalten (Abbildung 16.4).<br />

191


KAPITEL 16. ENTWURF<br />

Abbildung 16.4.: Sequenzdiagramm EJB-Schicht<br />

Der Mediator entnimmt dem Search-Objekt, auf welchen Datenquellen die Suche durchgeführt<br />

werden soll, und schickt <strong>ein</strong>e Nachricht <strong>an</strong> die entsprechenden Wrapper. Die Suche<br />

auf den verschiedenen Datenbeständen erfolgt d<strong>an</strong>n asynchron. Nachdem <strong>der</strong> Mediator<br />

die Suche gestartet hat, wartet er auf Ergebnisse. Wenn die Wrapper in <strong>ein</strong>er denierten<br />

Zeitsp<strong>an</strong>ne k<strong>ein</strong>e Ergebnisse liefern, werden diese verworfen. Die gefundenen Ergebnisse<br />

werden alle in <strong>ein</strong> Ergebnis-Objekt verpackt (Abbildung 16.5).<br />

192


16.2. ARCHITEKTUR<br />

Abbildung 16.5.: Sequenzdiagramm Mediator und Wrapper<br />

193


KAPITEL 16. ENTWURF<br />

Packaging<br />

Die Gesamtheit <strong>der</strong> Java-Klassen und -Interfaces des Systems wird nach strukturellen<br />

Gesichtspunkten auf Pakete aufgeteilt. Die entworfene Paketstruktur lässt sich Abbildung<br />

16.6 entnehmen. Auf die <strong>ein</strong>zelnen Pakete wird in den folgenden Abschnitten zum Entwurf<br />

<strong>der</strong> <strong>ein</strong>zelnen Anwendungs-Schichten des Öfteren Bezug genommen.<br />

Abbildung 16.6.: Paketdiagramm<br />

194


16.3. SUCHLOGIK<br />

16.3. Suchlogik<br />

Das folgende Kapitel setzt sich mit den Grundlagen und dem Entwurf <strong>der</strong> Suchlogik aus<strong>ein</strong><strong>an</strong><strong>der</strong>.<br />

Dabei wird zunächst in Abschnitt 16.3.1 auf <strong>ein</strong>e grundsätzliche Klärung <strong>der</strong><br />

Aufgabe <strong>ein</strong>geg<strong>an</strong>gen, wo neben <strong>ein</strong>igen <strong>ein</strong>führenden Worten zu Suchfunktionen <strong>an</strong> sich<br />

auch die in diesem Projekt konkreten Arbeitsfel<strong>der</strong> abgesteckt werden und <strong>ein</strong>e Einordnung<br />

in das Gesamtsystem vorgenommen wird. Erst jetzt werden in Abschnitt 16.3.2 die<br />

Technologien und Modelle <strong>an</strong>gesprochen, die zur Realisierung <strong>der</strong> Suchfunktion vorgesehen<br />

sind. Im Anschluss dar<strong>an</strong> folgt im Abschnitt 16.3.3 <strong>ein</strong>e kurze Beschreibung <strong>der</strong><br />

Klassen und Methoden <strong>der</strong> zu entwickelnden Logikkomponente, die in Abschnitt 16.3.4<br />

um <strong>ein</strong>e abschlieÿende Dynamikbeschreibung ergänzt wird.<br />

16.3.1. Aufgabe<br />

Die Suchfunktion stellt <strong>ein</strong>e elementare wenn nicht sogar die wichtigste Funktion<br />

innerhalb <strong>ein</strong>es <strong>Bibliotheksdienste</strong>s dar. In <strong>ein</strong>fachen Worten dient sie zur Lösung <strong>der</strong><br />

Aufgabe, bestimmte Dokumente aus <strong>ein</strong>er grossen Anzahl von Dokumenten verschiedenen<br />

Typs <strong>an</strong>h<strong>an</strong>d von Suchparametern zu nden. Jedoch steckt hinter dieser Aufgabe <strong>ein</strong>e<br />

Vielzahl <strong>an</strong> kl<strong>ein</strong>en Teilaufgaben und <strong>ein</strong> hohes Maÿ <strong>an</strong> Komplexität, das davon abhängig<br />

ist, wie genau und wie intelligent die Suche nach Dokumenten ablaufen soll.<br />

Der generelle Ablauf <strong>ein</strong>er Suche verläuft in den folgenden Schritten: Zuerst legt <strong>der</strong> Suchende<br />

Suchkriterien und ggf. weitere Parameter fest, die <strong>ein</strong>e Einussnahme auf die Suche<br />

o<strong>der</strong> das Suchverfahren selbst erlauben. Nach diesem Schritt wird <strong>der</strong> zu durchsuchende<br />

Datenbest<strong>an</strong>d mit den <strong>an</strong>gegebenen Suchkriterien verglichen, wobei unterschiedliche Methoden<br />

zum Einsatz kommen können. Abschliessend werden dem Suchenden im letzten<br />

Schritt die Ergebnisse präsentiert im besten Fall geordnet nach Relev<strong>an</strong>z o<strong>der</strong> <strong>an</strong><strong>der</strong>en<br />

Kriterien [WCc].<br />

Die Güte <strong>ein</strong>er Suchfunktion ist abhängig davon, wie intelligent die <strong>ein</strong>gesetzten Verfahren<br />

sind. Ein Maÿ für Intelligenz im Kontext dieser Funktion ist z. B. das Verhältnis<br />

zwischen dem Aufw<strong>an</strong>d, den m<strong>an</strong> bei <strong>der</strong> Angabe von Suchkriterien investiert, und <strong>der</strong><br />

dabei erzielten Treergenauigkeit innerhalb <strong>ein</strong>er <strong>an</strong>nehmbaren Suchdauer. Dabei gilt es,<br />

den bestmöglichen Bezug zu den Suchkriterien zu ermitteln, um dem Suchenden möglichst<br />

genau die Ergebnisse <strong>an</strong>zubieten, die er benötigt. Dazu sind Sortierungen nach Relev<strong>an</strong>z,<br />

die Einbeziehung von möglichen Eingabefehlern und R<strong>an</strong>kings nach Treergenauigkeit<br />

und -häugkeit unumgänglich.<br />

Aufgrund <strong>der</strong> Komplexität, die hinter <strong>ein</strong>er solchen Suchfunktion steckt, wird die komplette<br />

Logik in <strong>ein</strong>er eigenständigen Komponente gekapselt. Diese Komponente wird, wie<br />

schon im Kapitel über den Entwurf diskutiert, als <strong>ein</strong>e Enterprise JavaBe<strong>an</strong> (EJB) <br />

genauer als SessionBe<strong>an</strong> realisiert. Diese ist im Architekturmodell in <strong>der</strong> Geschäftslogikschicht<br />

<strong>an</strong>gesiedelt und muss daher über wohl denierte Schnittstellen sowohl nach<br />

oben mit den Portlets <strong>der</strong> Präsentationsschicht als auch nach unten mit dem Mediator<br />

in <strong>der</strong> Datenzugrisschicht kommunizieren. Hinzu kommt die Zusammenarbeit mit <strong>der</strong><br />

SessionBe<strong>an</strong>, die für das Benutzerkonto zuständig ist und auf gleicher Ebene in <strong>der</strong> Geschäftslogikschicht<br />

<strong>an</strong>geordnet ist(vgl. Abbildung 16.1).<br />

Zur Durchführung <strong>ein</strong>er Suche werden von <strong>der</strong> GUI-Schicht die relev<strong>an</strong>ten Parameter<br />

übergeben. Diese lassen sich in Suchkriterien auf <strong>der</strong> <strong>ein</strong>en Seite und Suchparameter, zur<br />

externen Einussnahme auf den Suchablauf und die Ergebnisdarstellung, auf <strong>der</strong> <strong>an</strong><strong>der</strong>en<br />

195


KAPITEL 16. ENTWURF<br />

Seite klassizieren. Diese Parameter werden nach <strong>ein</strong>er Prüfung in Bezug auf Korrektheit<br />

und Sinnhaftigkeit es soll u.a. k<strong>ein</strong> HTML-Code als Parameter verwendet werden<br />

können in <strong>ein</strong>em Suchobjekt gekapselt und <strong>an</strong> den Mediator <strong>der</strong> Datenzugrisschicht<br />

übergeben. Dieser initiiert nun die eigentliche Suche <strong>an</strong> den <strong>an</strong>gebundenen Datenquellen<br />

und gibt die Suchergebnisse in Form <strong>ein</strong>es Resultobjektes <strong>an</strong> die Logik-Inst<strong>an</strong>z <strong>der</strong><br />

Suche zurück. Erst jetzt beginnt die eigentliche Arbeit <strong>der</strong> Suchlogik. Die empf<strong>an</strong>genen<br />

Suchergebnisse müssen entsprechend <strong>der</strong> Suchparameter sortiert werden und zudem nach<br />

Relev<strong>an</strong>z und Treergenauigkeit gewichtet werden. Techniken zur Ermittlung von Relev<strong>an</strong>z<br />

werden im folgenden Unterkapitel diskutiert. Sind die Suchergebnisse in dieser Form<br />

bearbeitet, können sie zurück <strong>an</strong> die GUI-Schicht also das Portlet, das die entsprechende<br />

An<strong>fr</strong>age gestellt hat übergeben werden, wo sie grasch aufbereitet <strong>an</strong>gezeigt werden<br />

können.<br />

Zusätzlich zur r<strong>ein</strong>en Darstellung sollen die Suchergebnisse auch noch in <strong>ein</strong>er Datenb<strong>an</strong>k<br />

abgelegt werden, um auf diese Weise <strong>ein</strong>e Suchhistory <strong>an</strong>bieten zu können. Zu diesem<br />

Zweck werden also die Ergebnisse auch <strong>an</strong> das Benutzerkonto übergeben, das diese Daten<br />

in serialisierter Form als BLOB neben <strong>ein</strong>igen <strong>ein</strong>deutigen die Such<strong>an</strong><strong>fr</strong>age charakterisierenden<br />

Parametern in <strong>ein</strong>er Datenb<strong>an</strong>k abspeichert.<br />

16.3.2. Technologien und Modelle<br />

Der folgende Abschnitt beh<strong>an</strong>delt die Technologien und Modelle, die hinter <strong>ein</strong>er komplexeren<br />

Suchfunktion stecken, wie sie innerhalb dieses Projekts realisiert werden soll.<br />

Dabei glie<strong>der</strong>t er sich in zwei Bereiche. Der erste führt in die Thematik des R<strong>an</strong>kings von<br />

Suchergebnissen und <strong>der</strong>en Relev<strong>an</strong>zbestimmung <strong>ein</strong>. Im zweiten Bereich wird d<strong>an</strong>n auf<br />

Methoden und konkrete Verfahren <strong>der</strong> fehlertoler<strong>an</strong>ten Suche <strong>ein</strong>geg<strong>an</strong>gen.<br />

R<strong>an</strong>king und Relev<strong>an</strong>z<br />

Als R<strong>an</strong>king (o<strong>der</strong> auch R<strong>an</strong>gliste) wird allgem<strong>ein</strong> das Ergebnis <strong>ein</strong>er Sortierung von mehreren<br />

vergleichbaren Objekten verst<strong>an</strong>den, die nach verschiedenen Kriterien bewertet worden<br />

sind [WCb]. Sinn und Zweck <strong>ein</strong>es solchen R<strong>an</strong>kings im Kontext <strong>der</strong> zu entwickelnden<br />

Suchfunktion besteht darin, die möglicherweise zahlreichen Suchergebnisse <strong>an</strong>h<strong>an</strong>d ausgewählter<br />

Kriterien zu bewerten, um somit dem Suchenden <strong>ein</strong>e nach Relev<strong>an</strong>z absteigende<br />

Liste von Ergebnissen präsentieren zu können. Auf diese Weise ndet er im Idealfall die<br />

am besten passenden Treer <strong>der</strong> Suche am Anf<strong>an</strong>g <strong>der</strong> Ergebnisliste.<br />

Problematisch ist allerdings, dass das zu entwickelnde System k<strong>ein</strong>e Suche auf <strong>ein</strong>em eigenen<br />

Datenbest<strong>an</strong>d durchführt, son<strong>der</strong>n viele heterogene Datenquellen über unterschiedliche<br />

Schnittstellen und Wrapper <strong>ein</strong>bindet und dem Suchenden <strong>ein</strong>e globale Suche über<br />

diese Quellen <strong>an</strong>bietet. Somit k<strong>an</strong>n <strong>an</strong> dieser Stelle nur sehr beschränkt auf <strong>ein</strong>e Relev<strong>an</strong>zbestimmung<br />

o<strong>der</strong> gar auf fehlertoler<strong>an</strong>tes Suchen Einuss genommen werden, da die<br />

Such<strong>an</strong><strong>fr</strong>age in Form <strong>ein</strong>es Suchobjektes lediglich <strong>an</strong> den Mediator übergeben wird, <strong>der</strong><br />

dieses d<strong>an</strong>n wie<strong>der</strong>um <strong>an</strong> alle benötigten Wrapper weiterleitet. Aus diesem Grund k<strong>an</strong>n<br />

zum Beispiel auf Tipp- o<strong>der</strong> Rechtschreibfehler nicht in <strong>der</strong> Form reagiert werden, wie<br />

es möglich wäre, wenn m<strong>an</strong> selbst auf den Datenbeständen suchen würde. Weiterhin ist<br />

davon auszugehen, dass jede <strong>der</strong> <strong>an</strong>gebundenen Datenquellen <strong>an</strong><strong>der</strong>e Relev<strong>an</strong>zmodelle<br />

o<strong>der</strong> R<strong>an</strong>kingprinzipien verwendet, genauso wie <strong>ein</strong>ige vielleicht fehlertoler<strong>an</strong>te Suchen in<br />

hohem Maÿe unterstützen und <strong>an</strong><strong>der</strong>e wie<strong>der</strong>um gar nicht.<br />

196


16.3. SUCHLOGIK<br />

Das für den Bibliotheksdienst <strong>an</strong>gestrebte Relev<strong>an</strong>zmodell muss also mit den zusammengeführten<br />

Ergebnissen aller <strong>an</strong>gebundenen Datenquellen arbeiten, die vom Mediator in ber<strong>ein</strong>igter<br />

Form <strong>an</strong> die Suchlogik übergeben werden. D.h. es werden die gesammelten Suchergebnisse<br />

als Grundlage genommen und <strong>an</strong>h<strong>an</strong>d verschiedener Kriterien und <strong>ein</strong>em komplizierten<br />

Schlüssel bewertet. Als Vorbild soll hier u.a. Google dienen (www.google.de),<br />

wo Anzahl <strong>der</strong> Vorkommen, Nähe und Verteilung <strong>der</strong> Suchbegrie u. a. als Grundlage für<br />

das R<strong>an</strong>king genommen werden. Weiterhin sollen Verfahren aus dem Bereich <strong>der</strong> fehlertoler<strong>an</strong>ten<br />

Suche (siehe Abschnitt 16.3.2) <strong>an</strong>gewendet werden, um die Treergenauigkeit<br />

beziern zu können. Insgesamt soll so jedem Suchergebnis <strong>ein</strong>e Prozentzahl zugewiesen<br />

werden, die <strong>an</strong>gibt, inwieweit dieses Ergebnis <strong>der</strong> Such<strong>an</strong><strong>fr</strong>age genügt.<br />

Neben dem R<strong>an</strong>king nach dem Kriterium <strong>der</strong> Relev<strong>an</strong>z hat <strong>der</strong> Suchende zusätzlich die<br />

Möglichkeit, die Suchergebnisse nach verschiedenen Suchkriterien wie z.B. Titel o<strong>der</strong><br />

Ersch<strong>ein</strong>ungsjahr sowohl auf- als auch absteigend sortieren zu lassen.<br />

Fehlertoler<strong>an</strong>tes Suchen<br />

Die Methoden des fehlertoler<strong>an</strong>ten Suchens zielen darauf ab, fehlerhafte Eingaben als<br />

solche zu erkennen und die Suche normal durchzuführen. Dabei werden die fehlerhaften<br />

Eingaben nach Möglichkeit auf korrekte abgebildet und die Suche mit den korrekten<br />

Eingaben weitergeführt. Auf diese Weise können dem Suchenden z. B. auch alternative<br />

Suchbegrie vorgeschlagen werden, wenn die Suche nur wenige o<strong>der</strong> k<strong>ein</strong>e Ergebnisse<br />

liefern konnte. Fehlerhafte Eingaben werden dabei in zwei Kategorien <strong>ein</strong>geteilt. Auf <strong>der</strong><br />

<strong>ein</strong>en Seite die Tippfehler, die entstehen, wenn <strong>der</strong> Suchende aus Versehen <strong>ein</strong>e o<strong>der</strong><br />

mehrere falsche Tasten betätig, und auf <strong>der</strong> <strong>an</strong><strong>der</strong>en Seite die Rechtsschreibfehler, die<br />

zust<strong>an</strong>de kommen, wenn <strong>der</strong> Suchende nicht weiss, wie das Suchwort geschrieben wird<br />

[Fri96].<br />

Um <strong>ein</strong>e solche fehlertoler<strong>an</strong>te Suche zu ermöglichen, ist es nötig, den Unterschied zwischen<br />

den zu vergleichenden Zeichenketten durch Konvertierungen zu eliminieren und somit<br />

<strong>ein</strong>en Test auf Identität möglich zu machen. Verfahren dieser Art bezeichnet m<strong>an</strong> als<br />

sprachorientierte Verfahren. Alternativ k<strong>an</strong>n <strong>ein</strong> Fehlerabst<strong>an</strong>d deniert werden, <strong>der</strong> nach<br />

dem Wortvergleich <strong>ein</strong>e Kennzahl über die Grösse <strong>der</strong> Abweichung liefert. Diesem Prinzip<br />

folgen die buchstabenorientierten Verfahren.<br />

Der Einsatz von sprachorientierten Verfahren k<strong>an</strong>n sehr leicht helfen, dem Problem <strong>der</strong><br />

Rechtschreibfehler zu begegnen, was in <strong>der</strong> grundlegenden Idee dieser Verfahren begründet<br />

ist. Das Prinzip ist darauf ausgerichtet, Ausdrücke zu nden, die zwar <strong>an</strong><strong>der</strong>s geschrieben,<br />

aber dennoch gleich o<strong>der</strong> zumindest ähnlich ausgesprochen werden. Es k<strong>an</strong>n also erwartet<br />

werden, dass bei <strong>ein</strong>er Suche nach <strong>der</strong> Zeichenkette Meyer auch die Zeichenkette Mayer<br />

in die Suche mit <strong>ein</strong>bezogen wird. Aus diesem Grund werden diese Suchverfahren auch<br />

phonetische Suchen gen<strong>an</strong>nt [RS77]. Allerdings k<strong>an</strong>n <strong>ein</strong>e Implementierung <strong>der</strong> phonetischen<br />

Suche lediglich Erkenntnisse <strong>ein</strong>er Sprache optimal nutzen, was in <strong>der</strong> Natur des<br />

Prinzips begründet ist. Daher sind diese Methoden für internationale Anwendungen nur<br />

bedingt geeignet. Verfahren, die dieses Prinzip umsetzen, sind z.B. das Soundex Verfahren<br />

(siehe [Knu73]) o<strong>der</strong> die phonetische Codierung.<br />

Die buchstabenorientierten Verfahren denieren <strong>ein</strong> Maÿ für Fehlerabstände zwischen zwei<br />

Zeichenketten, das insbeson<strong>der</strong>e zur Identizierung von Tippfehlern wie Buchstabendreher<br />

o<strong>der</strong> das Drücken <strong>ein</strong>er falschen Taste her<strong>an</strong>gezogen werden k<strong>an</strong>n. Bek<strong>an</strong>ntester Vertreter<br />

<strong>der</strong> Verfahren dieser Art ist die Levensht<strong>ein</strong>-Dist<strong>an</strong>z (auch Editierdist<strong>an</strong>z) (siehe [Lev66]).<br />

197


KAPITEL 16. ENTWURF<br />

Sie ist deniert als <strong>ein</strong> Maÿ für den Unterschied zwischen zwei Zeichenketten bezüglich<br />

<strong>der</strong> minimalen Anzahl <strong>der</strong> Operationen Einfügen, Löschen und Ersetzen von <strong>ein</strong>zelnen<br />

Zeichen, um <strong>ein</strong>e Zeichenkette in <strong>ein</strong>e <strong>an</strong><strong>der</strong>e zu überführen. Dieses Verfahren besitzt<br />

zahlreiche Vari<strong>an</strong>ten und Erweiterungen in Bezug auf die Gewichtung und die Anzahl <strong>der</strong><br />

oben gen<strong>an</strong>nten Operationen [Fri96].<br />

Wie schon im vorherigen Unterkapitel <strong>an</strong>gesprochen, k<strong>an</strong>n <strong>ein</strong>e fehlertoler<strong>an</strong>te Suche im<br />

eigentlichen Sinne aus den gen<strong>an</strong>nten Gründen innerhalb dieses Projektes nicht <strong>an</strong>gewendet<br />

werden. Allerdings werden zahlreiche dieser Verfahren und Methoden implementiert,<br />

um die vom Mediator erhaltenden Suchergebnisse zu gewichten und <strong>ein</strong> R<strong>an</strong>king nach<br />

Relev<strong>an</strong>z zu ermöglichen.<br />

16.3.3. Klassenbeschreibung<br />

Die Klassenbeschreibung <strong>der</strong> Suchlogik beschränkt sich wie schon <strong>an</strong>gesprochen auf <strong>ein</strong>e<br />

EJB genauer gesagt <strong>ein</strong>e Stateless SessionBe<strong>an</strong>. Diese EJB kommuniziert mit den<br />

Suchportlets, <strong>der</strong> Mediator-EJB und <strong>der</strong> Benutzerkonto-EJB. Neben den obligatorischen<br />

Methoden <strong>ein</strong>er EJB, die den Lifecycle regeln, stellt die Businessmethode search() die<br />

zentrale Methode dieser Komponente dar. Sie wird von <strong>der</strong> Präsentationsschicht aus aufgerufen,<br />

erledigt alle die Suche betreenden Aufgaben und übergibt das Resultat wie<strong>der</strong><br />

<strong>an</strong> das au<strong>fr</strong>ufende Portlet. Da die Suche und die Generierung <strong>der</strong> Suchergebnisliste, wie<br />

in den vorherigen Unterkapiteln <strong>an</strong>gesprochen, sehr komplex sind, werden Teilaufgaben<br />

in separate Methoden ausgeglie<strong>der</strong>t:<br />

Methode<br />

checkParam(Parameter)<br />

createSearchObject(Parameter)<br />

calcRelev<strong>an</strong>ce(Result)<br />

sort(ResultSet, Mode)<br />

Parame-<br />

saveSearch(ResultSet,<br />

ter)<br />

Funktionalität<br />

Überprüft die Eingaben des Benutzers auf Fehler<br />

Erstellen <strong>ein</strong>es Suchobjektes und füllen des Suchobjektes<br />

mit den übergebenen Parametern<br />

Berechnung <strong>der</strong> Relev<strong>an</strong>z <strong>ein</strong>es Ergebnisses<br />

Durchführung <strong>der</strong> eigentlichen Sortierung <strong>der</strong> Ergebnismenge<br />

nach dem <strong>an</strong>gegebenen Kriterium<br />

(Relev<strong>an</strong>z, Titel, Datum,...)<br />

Übergabe des Suchergebnisses <strong>an</strong> das Benutzerkonto<br />

unter Angabe <strong>der</strong> Suchparameter<br />

Tabelle 16.1.: Klasse SearchBe<strong>an</strong><br />

Das Klassendiagramm (Abbildung 16.7) zeigt die Methoden <strong>der</strong> Komponente SearchBe<strong>an</strong><br />

und verdeutlicht die Abhängigkeit zu <strong>an</strong><strong>der</strong>en Klassen. Die Session-Be<strong>an</strong> unterstützt den<br />

Local-Client-View durch das Remote-Home-Interface LocalSearch und das Local-Home-<br />

Interface LocalSearchHome. Über die Klasse org.pgportal.ejb.util.EjbLocalHomeFactory<br />

bekommt die SearchBe<strong>an</strong> Zugri auf die beiden Session-Be<strong>an</strong>s MediatorBe<strong>an</strong> und UserAccountBe<strong>an</strong>.<br />

Die MediatorBe<strong>an</strong> ist dabei für die Durchführung <strong>der</strong> Suche zuständig und<br />

mit <strong>der</strong> UserAccountBe<strong>an</strong> wird die Suchhistorie festgehalten. Auÿerdem verwendet die<br />

SearchBe<strong>an</strong> noch die Klassen SearchResultSet, SearchObject und InternetRessource aus<br />

dem Package org.pgportal.ejb.dto zur Datenhaltung.<br />

198


16.3. SUCHLOGIK<br />

Abbildung 16.7.: Klassendiagramm <strong>der</strong> Suchlogik<br />

199


KAPITEL 16. ENTWURF<br />

16.3.4. Dynamikbeschreibung<br />

Die Suchlogik ist in <strong>der</strong> Komponente SearchBe<strong>an</strong> implementiert. Zuerst werden die Benutzer<strong>ein</strong>gaben<br />

auf Fehler überprüft. Die validierten Benutzer<strong>ein</strong>gaben werden d<strong>an</strong>n verwendet,<br />

um <strong>ein</strong> Search-Objekt <strong>an</strong>zulegen. Dieses Search-Objekt wird <strong>an</strong> den Mediator übergeben,<br />

<strong>der</strong> als Ergebnismenge <strong>ein</strong> SearchResultSet liefert. Die Hauptaufgabe <strong>der</strong> Suchlogik<br />

besteht darin, die Ergebnismenge zu sortieren. Die <strong>ein</strong>zelnen Ergebnisse werden<br />

<strong>an</strong>h<strong>an</strong>d verschiedener Kriterien <strong>ein</strong>em R<strong>an</strong>king unterzogen. Die sortierte Ergebnismenge<br />

wird d<strong>an</strong>n zusammen mit den Suchparametern im Benutzerkonto als Suchhistorie gespeichert<br />

(Abbildung 16.8).<br />

Abbildung 16.8.: Sequenzdiagramm <strong>der</strong> Suchlogik<br />

16.4. Mediator / Wrapper<br />

Der Mediator ist die zentrale Schnittstelle zu den <strong>an</strong>gebundenen Quellen, hier k<strong>an</strong>n die<br />

Suchlogik z.B. <strong>ein</strong>e Suche (<strong>ein</strong>malig) <strong>an</strong>stossen, die d<strong>an</strong>n parallel über mehrere Quellen<br />

(digitale Bibliotheken) durchgeführt wird.<br />

200


16.4. MEDIATOR / WRAPPER<br />

16.4.1. Aufgabe<br />

Aufgabe des Mediators ist es, <strong>der</strong> Suchlogik <strong>ein</strong>e <strong>ein</strong>heitliche Sicht auf die verschiedenenartigen<br />

<strong>an</strong>gesprochenen Bibliotheken zu bieten. Der Mediator spricht Wrapper <strong>an</strong>, die die<br />

unterschiedlichen Bibliotheksschnittstellen kapseln. Die Wrapper führen die eigentliche<br />

An<strong>fr</strong>age <strong>an</strong> die Ressourcen durch, tr<strong>an</strong>sformieren die Ergebnisse in die <strong>an</strong>wendungsspezische<br />

Datenstruktur und stellen sie dem Mediator bereit. Dieser führt die erhaltenen<br />

Resultate aller Wrapper (unter Eliminierung von Duplikaten) zusammen und gibt sie<br />

wie<strong>der</strong> zurück <strong>an</strong> die Logik.<br />

Desweiteren bietet <strong>der</strong> Mediator den Zugri auf das ORBIS-Benutzerkonto vom Portal<br />

aus. Hier h<strong>an</strong>delt es sich um <strong>ein</strong>e Schnittstelle zum URICA-System <strong>der</strong> <strong>Uni</strong>-<strong>Oldenburg</strong>,<br />

mit <strong>der</strong> das Benutzerkonto-Portlet in <strong>der</strong> Lage s<strong>ein</strong> wird, <strong>ein</strong>e Übersicht über die aktuell<br />

vom Benutzer ausgeliehenen Dokumente und vor allem s<strong>ein</strong>e Leih<strong>fr</strong>isten <strong>ein</strong>zusehen.<br />

Vorgesehen ist auch, dies mit <strong>ein</strong>er Übersicht über bereits <strong>an</strong>gefallene o<strong>der</strong> drohende<br />

Mahngebüren zu ver<strong>ein</strong>en (vgl. Abbildung 16.31).<br />

Ausserdem wird es über diese Schnittstelle möglich s<strong>ein</strong>, Dokumente für die Ausleihe<br />

vorzumerken bzw. bestehende Vormerkungen aufzuheben.<br />

16.4.2. Die verschiedenen Quellen<br />

Grundlage <strong>der</strong> Wrapper-Struktur soll zunächst <strong>ein</strong> gleichwertiges Parallelsystem zum bestehenden<br />

ORBIS Online-Katalogsystem s<strong>ein</strong>. Weiterhin soll die Software aber auch um<br />

zusätzliche Quellen für Dokumente erweiterbar s<strong>ein</strong>.<br />

Vorgesehen ist für das Endprodukt <strong>ein</strong>e Anbindung <strong>an</strong> zumindest folgende Systeme:<br />

BIS-<strong>Oldenburg</strong>:<br />

Das BIS-<strong>Oldenburg</strong> wird über das bestehende URICA-System <strong>an</strong>gebunden. Hier stellt<br />

uns das URICA-System unterschiedliche Suchräume zur Verfügung, so dass wir die Suche<br />

auch auf Teilmengen des Gesamtkataloges (wie zum Beispiel <strong>ein</strong>e Suche nur über den<br />

Best<strong>an</strong>d des St<strong>an</strong>dortes Wechloy) ermöglichen können. Als Schnittstelle zur Datenübergabe<br />

vom URICA-System ist bereits <strong>ein</strong>e MAB1 basierte Wrapper-Implementierung im<br />

(experimentiellen) Einsatz. Zukünftig wird diese (primitive) Anbindung allerdings durch<br />

<strong>ein</strong>e XML-basierte Schnittstelle, die das SRU/SRW Protokoll nutzt, ersetzt werden.<br />

GBV:<br />

Der GBV ermöglicht <strong>ein</strong>e Ab<strong>fr</strong>age s<strong>ein</strong>er Datenb<strong>an</strong>ken über das Z39.50 -Protokoll. Für<br />

diese Schnittstelle ist bisher noch k<strong>ein</strong> Wrapper verfügbar bzw. implementiert.<br />

CiteSeer:<br />

CiteSeer stellt <strong>ein</strong>e Datenb<strong>an</strong>k zur Verfügung, die sich primär mit Texten aus dem Bereich<br />

Informatik befasst. Alle hier inidzierten Dokumente sind online zum sofortigen Download<br />

verfügbar. Da CiteSeer die automatisierte Ab<strong>fr</strong>age <strong>der</strong> eigenen Datenb<strong>an</strong>k nur über das<br />

OAI -Protokoll ermöglicht, welches k<strong>ein</strong>e Suche, son<strong>der</strong>n nur <strong>ein</strong>e sequentielle Ab<strong>fr</strong>age ermöglicht,<br />

muss <strong>der</strong> entsprechende Index lokal in <strong>ein</strong>er Datenb<strong>an</strong>k repliziert werden, auf<br />

welcher d<strong>an</strong>n <strong>der</strong> entsprechende Wrapper s<strong>ein</strong>e Such<strong>an</strong><strong>fr</strong>age per SQL-Queries ausführt.<br />

Das Aktualisieren <strong>der</strong> lokalen Datenb<strong>an</strong>k wird über <strong>ein</strong> externes Programm (dieses implementiert<br />

das OAI Protokoll) auf zeitgesteuerter Basis durchgeführt.<br />

CiteSeer wurde hierbei auf allgem<strong>ein</strong>en Beschluss hin als erste Quelle auf OAI Basis gewählt.<br />

Sobald <strong>der</strong> Wrapper vollständig fertiggestellt ist, lässt sich dieser mit sehr geringem<br />

Aufw<strong>an</strong>d für jede beliebige OAI-Quelle <strong>an</strong>passen und ermöglicht somit die Anbindung <strong>an</strong><br />

201


KAPITEL 16. ENTWURF<br />

<strong>ein</strong>e sehr groÿe Zahl von Quellen mit digital verfügbaren Dokumenten.<br />

16.4.3. Entwicklungsgeschichte<br />

Die Anbindung <strong>an</strong> das Softwaresystem des BIS <strong>Oldenburg</strong> erfolgt über das URICA-<br />

System. URICA stellt dabei verschiede Möglichkeiten <strong>der</strong> Ab<strong>fr</strong>age zur Verfügung. Zu<br />

Beginn des Projektes war <strong>der</strong> erste Wrapper, <strong>der</strong> <strong>ein</strong>e Anbindung <strong>an</strong> das URICA-System<br />

zur Verfügung stellte, auf das MAB1 -Datenformat ausgerichtet. Im Laufe <strong>der</strong> Entwickung<br />

und vor allem durch Korrespondenz mit Vertretern des BIS wurde allerdings deutlich, dass<br />

MAB1 zum <strong>ein</strong>en recht schwierig automatisch zu verarbeiten ist und es zum <strong>an</strong><strong>der</strong>en <strong>ein</strong><br />

recht altes Format ist, dem heute mehrere (mo<strong>der</strong>ne) als Konkurrenz gegenüberstehen.<br />

Nach <strong>ein</strong>er weiteren Evaluierung wurde deshalb beschlossen, diesen Wrapper zu entfernen<br />

und <strong>ein</strong>e Anbindung <strong>an</strong> URICA über das mo<strong>der</strong>enere SRU/SRW Protokoll zur Verfügung<br />

zu stellen, welches die erfor<strong>der</strong>lichen Daten in <strong>ein</strong>er XML-Form zurück gibt. Der<br />

entsprechende SRU-Wrapper ist somit <strong>der</strong> für die URICA-Anbindung relev<strong>an</strong>te und wird<br />

deshalb im weiteren als <strong>ein</strong>ziger hier näher erläutert.<br />

16.4.4. Technologien und Modelle<br />

Damit <strong>der</strong> Mediator <strong>ein</strong>e <strong>ein</strong>heitliche Schnittstelle zwischen <strong>der</strong> Suchlogik und den <strong>an</strong>gebundenen<br />

Quellen realisieren k<strong>an</strong>n, wird <strong>ein</strong>e Reihe von Datentr<strong>an</strong>sferobjekten benötigt,<br />

die <strong>an</strong>wendungsglobal diese Schnittstellen festlegen. Der Mediator kapselt durch die Wrapper<br />

alle An<strong>fr</strong>agen sowie die entsprechenden Suchergebnisse in <strong>ein</strong> <strong>an</strong>wendungsspezisches<br />

Format, bestehend aus <strong>ein</strong>igen wenigen Datenobjekten:<br />

An<strong>fr</strong>age-Objekte<br />

Zur An<strong>fr</strong>age <strong>ein</strong>er Suche <strong>an</strong> den Mediator wurde folgende Datenstruktur gewählt:<br />

SearchObject<br />

Hier werden alle Daten, die zur Denition <strong>ein</strong>er Suche benötigt werden, per get/set gesetzt<br />

und ausgelesen. Dies betrit die Art <strong>der</strong> Suche (nach Autor, Titel o.Ä.), <strong>ein</strong>e Liste <strong>der</strong><br />

<strong>ein</strong>zubindenen Quellen (vom DatenTyp InternetResource) sowie die in die Suche <strong>ein</strong>zubindenden<br />

Dokument-Typen und allgem<strong>ein</strong>eren Such<strong>ein</strong>stellungen (DatenTyp: SearchType).<br />

Es benden sich damit alle Parameter <strong>ein</strong>er Suche in <strong>ein</strong>em Datenobjekt. Die Suche/Mediator<br />

braucht nur dieses <strong>ein</strong>e Objekt und k<strong>an</strong>n damit die Suche durchführen.<br />

SearchType<br />

Bildet die Suchpräferenzen aus den Vorgaben des UserAccounts ab. Hier werden z.B. die<br />

Dokument-Typen, die gesucht werden, deniert (z.Zt. codiert als String in .getMediaCodes()),<br />

sowie weitere Such-Globale (also nicht auf <strong>ein</strong>e bestimmte Quelle bezogenen)<br />

Einstellungen.<br />

InternetResource<br />

Ein Interface, das für alle Quellen, d.h. alle <strong>ein</strong>gebundenen Bibliotheks-Kataloge sowie<br />

digitale Bibliotheken, speziell implementiert werden muss. Alle <strong>an</strong>gebundenen Quellen<br />

müssen zumindest <strong>ein</strong>e Funktion getName() unterstützen, die den Typ <strong>der</strong> Quelle (codiert<br />

als Integer) zurückgibt. Der jeweils für die Suchquelle nötige Wrapper wird durch diesen<br />

Wert identiziert, und <strong>ein</strong> spezialisierter Wrapper verarbeitet d<strong>an</strong>n die für diese Quelle<br />

202


16.4. MEDIATOR / WRAPPER<br />

o<strong>der</strong> auch diesen Typ Quelle nötigen Attribute (z.B. Ab<strong>fr</strong>ageURL, Username, Passwort<br />

usw.).<br />

Abbildung 16.9.: Paket org.pgportal.ejb.dto: Struktur <strong>der</strong> An<strong>fr</strong>age Objekte<br />

Die speziellen Attribute für die Quellen werden, sofern nötig, im UserAccount gesetzt.<br />

Die dazwischenliegenden Schichten (Suche, Mediator,...) sehen nur das allgem<strong>ein</strong>e Interface<br />

InternetResource.<br />

Das SearchObject enthält nachher je nach ausgewählten Suchquellen <strong>ein</strong>e Menge von<br />

InternetResourcen.<br />

Ergebnis-Objekte<br />

Der Mediator liefert nach durchgeführter Suche die folgenden Ergebnis-Objekte:<br />

SearchResultSet<br />

B<strong>ein</strong>haltet das komplette Suchergebnis (als Array aus ResultElement(en)) sowie <strong>ein</strong>ige<br />

Metadaten, wie z.B. Datum/Uhrzeit <strong>der</strong> Suche, Anzahl <strong>der</strong> Suchergebnisse, die Ab<strong>fr</strong>agezeit<br />

und zusätzlich das An<strong>fr</strong>age-Objekt (SearchObject), welches die Suche ausgelöst hat<br />

(z.B. um dieses in <strong>ein</strong>e Such-Historie zu sichern).<br />

ResultElement<br />

Ein ZwischenObjekt, welches Ergebnis-Gruppen (ResultGroup) und <strong>ein</strong>zelne Suchergebnisse<br />

(Result) zu <strong>ein</strong>em <strong>ein</strong>heitlichen Objekttyp kapselt. Ein SearchResultSet b<strong>ein</strong>haltet<br />

also nur <strong>ein</strong>e Liste aus ResultElement(en), die GUI muss so auf gruppierte Elemente<br />

(die z.B. Ein Buchb<strong>an</strong>d, das aus mehreren <strong>ein</strong>zelnen Büchern besteht) prüfen und <strong>ein</strong>e<br />

geeignete Darstellung wählen.<br />

203


KAPITEL 16. ENTWURF<br />

ResultGroup<br />

Das Suchergebis ist <strong>ein</strong>e Dokument-Gruppe (wie z.B. Schillers gesammelte Werke B<strong>an</strong>d I-<br />

XI). Die <strong>ein</strong>zelnen Dokumente erhält m<strong>an</strong> mit getDocGroup() als Array vom Typ Result.<br />

Hier besteht theoretisch noch das Problem, dass die <strong>ein</strong>zelnen Results von Quellsystem<br />

(z.B. URICA) noch weiter verkapselt s<strong>ein</strong> können. Der jeweilige Wrapper wird dies jedoch<br />

berücksichtigen und das Suchergebnis (zumindest vorerst) auf <strong>ein</strong>e Verkapselungsebene<br />

herunterbrechen.<br />

Result<br />

Ein <strong>ein</strong>zelnes Dokument mit den dazugehörigen Daten (Titel, Autor, ISBN, ...) sowie<br />

<strong>an</strong><strong>der</strong>en, zum Teil quellen-spezischen Metadaten (z.B. IDs o.ä.).<br />

Abbildung 16.10.: Paket org.pgportal.ejb.dto: Struktur <strong>der</strong> Ergebnis Objekte<br />

Struktur Mediator<br />

Der Mediator ist als Enterprise Java Be<strong>an</strong> (EJB) realisiert und stellt <strong>der</strong> Suchlogik <strong>ein</strong>e<br />

Methode search() zur Durchführung <strong>ein</strong>er parallelen Suche auf den denierte(n) InternetResource(n)<br />

zur Verfügung. Im Weiteren werden hier die Zugrie auf das URICA<br />

Benutzerkonto realisiert. Der Mediator verfügt somit über folgende Methoden:<br />

search()<br />

Die Suchfunktionalität. Es wird <strong>ein</strong> SearchObject mit entsprechenden An<strong>fr</strong>agen (Suchtyp,<br />

Suchart, Quellen) übergeben, <strong>an</strong>h<strong>an</strong>d dessen d<strong>an</strong>n Wrapper inst<strong>an</strong>tiiert werden, die die<br />

Such<strong>an</strong><strong>fr</strong>age durchführen und das Ergebnis in <strong>ein</strong>em SearchResultSet zurückliefern.<br />

204


16.4. MEDIATOR / WRAPPER<br />

Der Mediator sammelt die <strong>ein</strong>zelnen SearchResultSets und führt sie (unter Eliminierung<br />

von Duplikaten) zu <strong>ein</strong>em Einzelnen zusammen, welches d<strong>an</strong>n <strong>an</strong> die au<strong>fr</strong>ufende Funktion<br />

zurückgeliefert wird.<br />

getDocList()<br />

Eine URICA-spezische Funktion, die die Ab<strong>fr</strong>age des Benutzerkontos im ORBIS System<br />

ermöglicht um <strong>ein</strong>en Status über ausgeliehene Bücher, Mahnungen u.Ä. zu erhalten.<br />

reserveDoc(ResultElement r)<br />

Durch diese Funktion wird es dem userAccount-Be<strong>an</strong> möglich s<strong>ein</strong>, <strong>ein</strong> Dokument aus <strong>der</strong><br />

Ergebnismenge <strong>ein</strong>er URICA Suche am URICA System für den Benutzer zu resevieren.<br />

Hierbei k<strong>an</strong>n es sich (da ResultElement) sowohl um <strong>ein</strong> <strong>ein</strong>zelnes Dokument als auch um<br />

<strong>ein</strong>e DokumentGruppe h<strong>an</strong>deln - <strong>der</strong> Mediator führt d<strong>an</strong>n für jedes Element <strong>der</strong> Gruppe<br />

<strong>ein</strong>e Vorreservierung durch.<br />

deletreservedDoc(int ID)<br />

Eine Methode, um <strong>ein</strong>e bestehende Resevierung <strong>an</strong>h<strong>an</strong>d <strong>der</strong> ID aus dem Benutzerkonto<br />

zu löschen.<br />

Struktur Wrapper<br />

Die Wrapper werden als Message Driven Be<strong>an</strong>s (MDB) realisiert. Eine MDB arbeitet<br />

im Gegensatz zur EJB quasi-unabhängig von <strong>der</strong> Klasse, die sie inst<strong>an</strong>tiiert hat. Wird<br />

<strong>ein</strong>e normale EJB referenziert (inst<strong>an</strong>ziiiert), steht sie <strong>der</strong> au<strong>fr</strong>ufenden Klasse d<strong>an</strong>n im<br />

Prinzip wie <strong>ein</strong>e normale Java-Klasse zur Verfügung - d.h. wird <strong>ein</strong>e Methode <strong>der</strong> Be<strong>an</strong><br />

abgeabeitet, geht <strong>der</strong> Kontrolluss <strong>an</strong> die Be<strong>an</strong> über - die au<strong>fr</strong>ufende Klasse muss warten<br />

bis die Be<strong>an</strong> <strong>ein</strong>en Rückgabewert liefert o<strong>der</strong> abbricht.<br />

Parallele Suche<br />

Da m<strong>an</strong> im EJB-Container JBoss aber k<strong>ein</strong>e Möglichkeiten preisgibt, aktiv <strong>ein</strong> threading<br />

zu forcieren, ist auf diesem Wege <strong>ein</strong>e parallele Abarbeitung mehrerer Suchquellen nicht<br />

möglich. (Im Sinne <strong>der</strong> Skalierbarkeit von Application-Servern wird das Threading in<br />

Be<strong>an</strong>-Klassen von JBoss restriktiv unterbunden)<br />

Aus diesem Grunde greifen wir <strong>an</strong> dieser Stelle auf Message Driven Be<strong>an</strong>s zurück: <strong>ein</strong>e<br />

MDB arbeitet im Gegensatz zur normalen EJB über JMS-K<strong>an</strong>äle - sogen<strong>an</strong>nte Queues -<br />

: <strong>ein</strong>e Klasse, die <strong>ein</strong>e MDB nutzen will, inst<strong>an</strong>tiiert die MDB als Empfänger <strong>ein</strong>er dem<br />

System bek<strong>an</strong>nten JMS-Queue, schickt <strong>ein</strong>e JMS-Nachricht auf diese Queue (z.B. <strong>ein</strong> Java-<br />

Datenobjekt) und k<strong>an</strong>n d<strong>an</strong>n auf <strong>ein</strong>em ggf. <strong>an</strong><strong>der</strong>en JMS-Antwortk<strong>an</strong>al (Antwort-Queue)<br />

zu <strong>ein</strong>em späteren Zeitpunkt das AntwortObjekt abholen.<br />

Eine MDB k<strong>an</strong>n aber durchaus mehr als nur <strong>ein</strong>e Methode implementieren, auch wenn das<br />

Arbeitsprinzip (Objekt empf<strong>an</strong>gen - verarbeiten - zurückgeben) recht beschränkt sch<strong>ein</strong>t:<br />

Eine MDB könnte z.B. für verschiedenartige Eing<strong>an</strong>gsobjekte unterschiedliche Aktionen<br />

ausführen.<br />

Durch das MDB Konzept ist es uns nun möglich, mehrere Wrapper parallel <strong>an</strong>zustossen:<br />

Zur Durchführung <strong>ein</strong>er Suche spaltet <strong>der</strong> Mediator das zur An<strong>fr</strong>age verwendete Search-<br />

Object in mehrere SearchObject(e) auf, die d<strong>an</strong>n jeweils nur noch <strong>ein</strong>e InternetResource<br />

enthalten. Es werden entsprechend <strong>der</strong> Anzahl Quellen WrapperMDBs inst<strong>an</strong>tiiert, die alle<br />

auf dieselbe vordenierte JMS-An<strong>fr</strong>ageQueue hören, auf die d<strong>an</strong>n auch die SearchObjekte<br />

vom Mediator gesendet werden.<br />

Nachdem nun jede Wrapper-Inst<strong>an</strong>z <strong>ein</strong> SearchObject abgearbeitet hat, holt <strong>der</strong> Mediator<br />

die Ergebnisse aus <strong>der</strong> ResultQueue wie<strong>der</strong> ab.<br />

205


KAPITEL 16. ENTWURF<br />

Die <strong>ein</strong>zelnen Suchen werden also parallel <strong>an</strong>gestoÿen - es besteht allerdings durch ungeschickte<br />

Wahl <strong>der</strong> Reihenfolge beim Einsammeln <strong>der</strong> Ergebnisse die Gefahr(JMS-<br />

Nachrichten enthalten Metadaten (z.B. <strong>ein</strong>e <strong>ein</strong>deutige ID) <strong>an</strong> denen m<strong>an</strong> sie identizieren<br />

k<strong>an</strong>n) - und da <strong>der</strong> Mediator JMS-Nachrichten nur <strong>an</strong>h<strong>an</strong>d dieser <strong>ein</strong>deutigen IDs aus <strong>der</strong><br />

Result-Queue auslösen k<strong>an</strong>n, dass m<strong>an</strong> die l<strong>an</strong>gsamste Quelle zuerst auszulesen und zu<br />

verarbeiten versucht, was zu unnötiger Wartezeit führt.<br />

Erweiterbarkeit und Wartung<br />

Im Prinzip werden alle Wrapper (ob URICA, GBV o<strong>der</strong> Citeseer...) durch <strong>ein</strong>e Message<br />

Driven Be<strong>an</strong>-Klasse im Package org.pgportal.wrapper deniert.<br />

Da wir aber vor allem aus Gründen <strong>der</strong> Erweiter- und Wartbarkeit des Codes unsere Wrapper<br />

möglichst quellunabhängig realisieren wollten und nicht für jede <strong>an</strong>gebundene digitale<br />

Bibliothek <strong>ein</strong>e eigene MDB incl. Queues denieren wollen, b<strong>ein</strong>haltet dieses Paket nicht<br />

viel mehr als <strong>ein</strong>e <strong>ein</strong>zelne MDB (WrapperMDB), welche die JMS-Kommunikationslogik<br />

hält, und <strong>ein</strong> Interface DefaultWrapper, welches die Struktur <strong>ein</strong>es Wrappers deniert.<br />

Für die verschiedenartigen Schnittstellen zu den Quellen stehen nun jeweils Sub-Packages<br />

unterhalb von org.pgportal.wrapper zur Verfügung, die jeweils zumindest <strong>ein</strong>e Klasse enthalten,<br />

die das Interface DefaultWrapper als normale Java Klasse implementieren. Die<br />

WrapperMDB k<strong>an</strong>n nun <strong>an</strong>h<strong>an</strong>d des Types <strong>der</strong> im SearchObject enthaltenen InternetResource<br />

(Integer-Wert: mit getName() auszulesen) entscheiden, welche St<strong>an</strong>dart-Java-<br />

Klasse genutzt werden muss, um diesen Typ InternetResource zu verarbeiten.<br />

Die Entwicklung und Integration <strong>ein</strong>er neuen Such-Quelle, also <strong>ein</strong>es neuen Wrappers in<br />

das fertige System, ist später komplett unabhängig von <strong>der</strong> verwendeten Kommunikationslogik<br />

zwischen Wrapper/Mediator/Suchlogik/Benutzerkonto - es sind noch nicht mal<br />

spezielle EJB- o<strong>der</strong> JMS-Kentnisse nötig, um das System zu erweitern. Die Ab<strong>fr</strong>age <strong>der</strong><br />

neuen Quelle wird von <strong>ein</strong>er St<strong>an</strong>dard-Java Klasse implementiert (die natürlich in <strong>der</strong><br />

Lage s<strong>ein</strong> muss die Ergebnisse in die entsprechenden Ergebnis-Objekte zu tr<strong>an</strong>sferieren)<br />

- weiterhin es ist lediglich nötig, <strong>ein</strong>en neuen Typ InternetResource zu denieren und in<br />

<strong>der</strong> WrapperMDB zu deklarieren, welcher Wrapper für diese Resource zu wählen ist.<br />

Zwingend implementiert werden muss für die InternetResource nur getName(). Auÿerdem<br />

k<strong>an</strong>n m<strong>an</strong> noch weitere Attribute ablegen, die für die entsprechende Quelle spezisch sind<br />

(z.B. Suche nur nach ausleihbaren Dokumenten im Fall des Urica-Wrappers). Diese<br />

spezischen Funktionen müssen entsprechend von UserAccount gesetzt und d<strong>an</strong>n vom<br />

Wrapper interpretiert werden. Der Name (getName()) muss <strong>ein</strong>deutig s<strong>ein</strong>, da er auch zur<br />

Identizierung <strong>der</strong> Ressource (des Wrappers) verwendet wird.<br />

Die von DefaultWrapper abgeleitete Klasse muss die Methode search() implementieren<br />

und hier entsprechend <strong>ein</strong> SearchObject entgegennehmen, <strong>an</strong>h<strong>an</strong>d <strong>der</strong> hier vorgegebenen<br />

Parameter <strong>ein</strong>e Suche auf <strong>der</strong> Quelle durchführen und das Ergebnis in <strong>ein</strong>em SearchResultSet<br />

zurückliefern.<br />

Zur Erweiterung wird m<strong>an</strong> zw<strong>an</strong>gsläug auch die UserAccountBe<strong>an</strong> entsprechend <strong>an</strong>passen<br />

müssen, da sonst die neue Ressource bei <strong>der</strong> Erstellung des SearchObjektes nicht<br />

berücksichtigt wird.<br />

Die Package-Struktur stellt sich zur Zeit wie folgt dar:<br />

206


16.4. MEDIATOR / WRAPPER<br />

Abbildung 16.11.: Paket org.pgportal.ejb.wrapper : Struktur<br />

SRU-Schittstelle zu URICA<br />

Die Anbindung <strong>der</strong> <strong>Uni</strong>versitätsbibliothek wird über <strong>ein</strong>e SRU-Schnittstelle realisiert. Eine<br />

SRU-An<strong>fr</strong>age entspricht <strong>ein</strong>er Basis-URL und <strong>ein</strong>em dynamisch zusammenzusetzendem<br />

An<strong>fr</strong>ageteil, <strong>der</strong> aus Key-Value-Paaren besteht. Als Antwort wird <strong>ein</strong> XML-Dokument<br />

zurückgeliefert.<br />

Die An<strong>fr</strong>age <strong>an</strong> die SRU-Schnittstelle von URICA wird von drei Klassen realisert: UricaSRURessource,<br />

die das Interface InternetResource implementiert, SRUWrapper, die das<br />

Interface DefaultWrapper implementiert, und <strong>der</strong> Klasse SRUParser, die das Parsen des<br />

Ergebnisses übernimmt.<br />

Methode<br />

getName()<br />

getUser()<br />

getPW()<br />

setUser(String)<br />

setPW(String)<br />

Funktionalität<br />

gibt den Namen <strong>der</strong> InternetRessource zurück<br />

gibt den Benutzernamen zurück<br />

gibt das Passwort zurück<br />

setzt den Benutzernamen<br />

setzt das Passwort<br />

Tabelle 16.2.: Klasse UricaSRURessource<br />

207


KAPITEL 16. ENTWURF<br />

Methode<br />

search(SearchObject)<br />

Funktionalität<br />

führt die Suche durch und liefert <strong>ein</strong> SearchResult-<br />

Set zurück<br />

Tabelle 16.3.: Klasse SRUWrapper<br />

Methode<br />

SRUParser()<br />

startDocument()<br />

endDocument()<br />

startElement(String,<br />

String, Attributes)<br />

endElement(String,<br />

String)<br />

characters(char[], int, int)<br />

result(String, String)<br />

String,<br />

String,<br />

Funktionalität<br />

Konstruktor<br />

wird am Anf<strong>an</strong>g des zu parsenden Dokuments aufgerufen<br />

wird am Ende des zu parsenden Dokuments aufgerufen<br />

wird bei <strong>ein</strong>em önenden Tag aufgerufen<br />

wird bei <strong>ein</strong>em schlieÿenden Tag aufgerufen<br />

liefert den Inhalt zwischen önendem und schlieÿendem<br />

Tag<br />

liefert <strong>ein</strong>e Hashtable mit den Elementen und den<br />

Inhalten als Key-Value-Paare zurück<br />

Tabelle 16.4.: Klasse SRUParser<br />

Z.39.50 Schnittstelle zum GBV Gesamtkatalog<br />

Der GBV Gesamtkatalog stellt <strong>ein</strong>e wichtige Suchquelle dar, da sich Dokumente aus diesem<br />

Katalog evtl. sogar durch Fernleihe über das URICA-System zugänglich machen<br />

lassen.<br />

Allerdings ist zum aktuellen Zeitpunkt noch k<strong>ein</strong> Wrapper-Prototyp <strong>ein</strong>satzfähig, <strong>der</strong> das<br />

Z.39.50 Protokoll implementiert.<br />

OAI-Schittstelle zu CiteSeer<br />

CiteSeer stellt s<strong>ein</strong>e Daten als OAI-Datarepository zur Verfügung. Da auf diesem k<strong>ein</strong>e<br />

Suchfunktion möglich ist, müssen diese Daten zuerst in <strong>ein</strong>er lokalen Datenb<strong>an</strong>k abgelegt<br />

werden. Dieses Harvesten wird von <strong>ein</strong>em externen Programm regelmäÿig durchgeführt,<br />

um den Datenbest<strong>an</strong>d aktuell zu halten.<br />

Die Suche auf dem lokalen Datenbest<strong>an</strong>d lässt sich d<strong>an</strong>n mit <strong>ein</strong>fachen SQL-Querys auf<br />

<strong>der</strong> Datenb<strong>an</strong>k erledigen, so dass hier nur sehr geringer Overhead entsteht.<br />

Die An<strong>fr</strong>age <strong>an</strong> die OAI-Schnittstelle von CiteSeer wird von zwei Klassen realisert: CiteSeerRessource,<br />

die das Interface InternetResource implementiert, CiteSeerWrapper, die<br />

das Interface DefaultWrapper implementiert und das Suchen und Verpacken <strong>der</strong> Ergebnisse<br />

übernimmt.<br />

208


16.5. BENUTZERKONTO<br />

Methode<br />

getName()<br />

getUser()<br />

getPW()<br />

Methode<br />

search(SearchObject)<br />

Funktionalität<br />

gibt den Namen <strong>der</strong> InternetRessource zurück<br />

gibt null zurück da nicht benötigt<br />

gibt null zurück da nicht benötigt<br />

Tabelle 16.5.: Klasse CiteSeerRessource<br />

Funktionalität<br />

führt die Suche durch und liefert <strong>ein</strong> SearchResult-<br />

Set zurück<br />

Tabelle 16.6.: Klasse CiteSeerWrapper<br />

16.4.5. Ausblick<br />

In <strong>der</strong> Überprüfungsphase bendet sich noch <strong>ein</strong>e weitere digitale Quelle (die gewerblich<br />

betriebene Internetpräsenz des Grin-Verlages auf http://www.hausarbeiten.de bzw.<br />

http://www.diplomarbeiten24.de ) mit <strong>ein</strong>em Volumen von ca 50.000 Dokumenten, von<br />

denen allerdings nur ca 15.000 <strong>fr</strong>ei zum Download verfügbar sind.<br />

Hier k<strong>an</strong>n <strong>ein</strong>e denierte XML-Schnittstelle zur Suche her<strong>an</strong>gezogen werden, allerdings<br />

ist noch nicht klar, inwieweit mit Beschränkungen bezüglich <strong>der</strong> Verfügbarkeit <strong>der</strong> Dokumente<br />

aufgrund <strong>der</strong> kommerziellen Ausrichtung des Angebotes zu rechnen ist.<br />

Einer Integration <strong>der</strong> Schnittstelle steht allerdings durch den modularen Aufbau <strong>der</strong> Mediator/Wrapper<br />

Struktur nichts im Wege.<br />

16.5. Benutzerkonto<br />

Das Benutzerkonto dient dem Benutzer zur Beschleunigung <strong>der</strong> Suche und zum Erhalt<br />

von Informationen über s<strong>ein</strong> Bibliotheksbenutzerkonto.<br />

Die Suche k<strong>an</strong>n <strong>der</strong> Besucher beschleunigen, indem er im Konto die Such<strong>ein</strong>stellung (wie<br />

die Auswahl des Dokumententyps) vornimmt. Diese Einstellungen werden d<strong>an</strong>n bei allen<br />

Suchverfahren übernommen und müssen nicht immer neu bestimmt werden.<br />

Die Informationen, die er in <strong>der</strong> Dokumentenübersicht <strong>ein</strong>sehen k<strong>an</strong>n, betrit s<strong>ein</strong> Bibliothekskonto<br />

und die darauf vermerkten Dokumente. So k<strong>an</strong>n <strong>der</strong> Benutzer mit <strong>ein</strong>em Klick<br />

s<strong>ein</strong>e Ausleih<strong>fr</strong>isten (o<strong>der</strong> Ähnliches) überblicken.<br />

16.5.1. Technologien und Modelle<br />

Die Anbindung <strong>an</strong> die Datenb<strong>an</strong>k, in welcher sämtliche Daten des Benutzerkontos gespeichert<br />

werden, wird mit Hibernate realisiert. So lassen sich SQL-An<strong>fr</strong>agen in spezieller<br />

Hibernate-Syntax, gen<strong>an</strong>nt Hibernate Query L<strong>an</strong>guage, in <strong>ein</strong> Java-Dokument <strong>ein</strong>binden<br />

und <strong>an</strong> die Datenb<strong>an</strong>k senden. Als Antwort wird <strong>ein</strong> Datensatz zurückgeliefert.<br />

16.5.2. Klassenbeschreibung<br />

Die Klassenbeschreibung des Benutzerkontos beschränkt sich auf die beiden folgenden<br />

Klassen. Die erste Klasse, HibernateUtil, sorgt dafür, dass die aktuelle Hibernate Session<br />

209


KAPITEL 16. ENTWURF<br />

mit dem aktuellen Thread verbunden bleibt.<br />

Methode<br />

currentSession()<br />

closeSession()<br />

Funktionalität<br />

Önet <strong>ein</strong>e neue Hibernate-Session, falls dieser<br />

Thread noch k<strong>ein</strong>e hat<br />

Beendet die aktuelle Hibernate-Session<br />

Tabelle 16.7.: Klasse HibernateUtil<br />

Die Klasse UserAccountBe<strong>an</strong> ist die Session Be<strong>an</strong> des Benutzerkontos. Sie implementiert<br />

die Methoden, die für die Verwaltung des Benutzerkontos benötigt werden.<br />

Methode<br />

Funktionalität<br />

getMediator()<br />

Gibt den aktuellen Mediator zurück<br />

setMediator(LocalMediator) Ordnet <strong>der</strong> Session <strong>ein</strong>en Mediator zu<br />

getUserAccount(int)<br />

Holt den Datensatz des Benutzerkontos aus <strong>der</strong> Datenb<strong>an</strong>k<br />

setSearchSettings(Parameter) Dient <strong>der</strong> Einstellung <strong>der</strong> bevorzugten Suchoptionen<br />

setRemindSettings(Parameter) Legt fest, w<strong>an</strong>n und wie oft <strong>der</strong> User <strong>an</strong> Termine<br />

erinnert werden will<br />

setLibData(Parameter) Än<strong>der</strong>t Zug<strong>an</strong>gsdaten des Users von eigenen Benutzerkonten<br />

<strong>an</strong><strong>der</strong>er integrierter Bibliotheken<br />

getSearchHistory(SearchHistory) Liest die Search Strings aus, nach denen bisher gesucht<br />

wurde<br />

setSearchHistory(Parameter) Schreibt <strong>ein</strong>en neuen Datensatz in die Suchgeschichte<br />

extendDoc(ResultElement) Speichert <strong>ein</strong>e An<strong>fr</strong>age zur Verlängerung <strong>der</strong> Ausleih<strong>fr</strong>ist<br />

bestimmter ausgeliehener Dokumente<br />

getDocList(int)<br />

Liest die moment<strong>an</strong> vom User ausgeliehenen Dokumente<br />

aus<br />

reserveDoc(ResultElement) Reserviert Dokumente<br />

deleteReservedDoc(int) Löscht reservierte Dokumente<br />

getUserSearchType(int) Gibt den aktuell denierten Suchtyp (<strong>ein</strong>fache/erweiterte,<br />

globale/lokale Suche) zurück<br />

getUserResources(int) Gibt die Internetressourcen <strong>an</strong>, auf denen die Suche<br />

durchgeführt wird<br />

catchHibernateException() Versucht, die Tr<strong>an</strong>saktion bei Auftreten <strong>ein</strong>es Fehlers<br />

rückgängig zu machen und sie nach <strong>ein</strong>er Exception<br />

zu beenden<br />

Tabelle 16.8.: Klasse UserAccountBe<strong>an</strong><br />

Das folgende Klassendiagramm (Abbildung 16.12) zeigt die Methoden <strong>der</strong> Klasse UserAccountBe<strong>an</strong><br />

sowie ihre Abhängigkeit zu <strong>an</strong><strong>der</strong>en Klassen. Die Be<strong>an</strong> unterstützt den Local-<br />

Client-View durch das Remote-Home-Interface LocalUserAccount und das Local-Home-<br />

Interface LocalUserAccountHome. Die UserAccountBe<strong>an</strong> k<strong>an</strong>n auf die oben beschriebene<br />

Klasse HibernateUtil zugreifen. Auÿerdem verwendet sie noch die Klasse SearchHistory<br />

zur Speicherung und zum Auslesen <strong>der</strong> persönlichen Suchgeschichte des Users, sowie die<br />

Klasse UserAccountObject zur Datenhaltung.<br />

210


16.5. BENUTZERKONTO<br />

Abbildung 16.12.: Klassendiagramm des Benutzerkontos<br />

16.5.3. Dynamikbeschreibung<br />

Nach dieser ausführlichen Beschreibung <strong>der</strong> Klassen des Benutzerkontos folgt <strong>ein</strong>e Erklärung<br />

<strong>der</strong> möglichen Anwendungsfälle.<br />

Abrufen <strong>der</strong> Einstellungen des Benutzerkontos<br />

Der Nutzer wählt auf s<strong>ein</strong>er Benutzungsoberäche die Einstellungen des Benutzerkontos<br />

(Such<strong>ein</strong>stellungen, Benachrichtigungs<strong>ein</strong>stellungen und Account <strong>der</strong> digitalen Bibliothek)<br />

aus. Von <strong>der</strong> GUI wird diese An<strong>fr</strong>age als Parameter <strong>an</strong> das UserAccountPortlet übergeben<br />

und <strong>an</strong> die UserAccountBe<strong>an</strong> weitergegeben.<br />

Die Be<strong>an</strong> schickt die An<strong>fr</strong>age getUserAccount() mit <strong>der</strong> userID <strong>an</strong> Hibernate und bekommt<br />

dafür das UserAccountObject zurückgeliefert, so dass sie es in <strong>der</strong> Session speichern k<strong>an</strong>n.<br />

Daraufhin k<strong>an</strong>n das UserAccountPortlet <strong>der</strong> GUI den Befehl, alle Einstellungen <strong>an</strong>zuzeigen,<br />

samt Daten übermitteln (siehe Abb. 16.13).<br />

211


KAPITEL 16. ENTWURF<br />

Abbildung 16.13.: Sequenzdiagramm: Abrufen <strong>der</strong> Einstellungen des Benutzerkontos<br />

Abrufen <strong>der</strong> Suchgeschichte<br />

Der Nutzer wählt auf s<strong>ein</strong>er Benutzungsoberäche die Suchgeschichte aus. Von <strong>der</strong> GUI<br />

wird diese An<strong>fr</strong>age als Parameter <strong>an</strong> das UserAccountPortlet übergeben und <strong>an</strong> die<br />

UserAccountBe<strong>an</strong> weitergegeben.<br />

Die Be<strong>an</strong> schickt die An<strong>fr</strong>age getSearchHistory() mit <strong>der</strong> userID <strong>an</strong> Hibernate und bekommt<br />

dafür das SearchHistoryObject zurückgeliefert, so dass sie es in <strong>der</strong> Session speichern<br />

k<strong>an</strong>n.<br />

Daraufhin k<strong>an</strong>n das UserAccountPortlet <strong>der</strong> GUI den Befehl, die Suchgeschichte <strong>an</strong>zuzeigen,<br />

samt Daten übermitteln (siehe Abb. 16.14).<br />

Abbildung 16.14.: Sequenzdiagramm: Abrufen <strong>der</strong> Suchgeschichte<br />

Abrufen <strong>der</strong> Dokumentenübersicht<br />

Der Nutzer wählt auf s<strong>ein</strong>er Benutzungsoberäche die Dokumentenübersicht aus. Von <strong>der</strong><br />

GUI wird diese An<strong>fr</strong>age als Parameter <strong>an</strong> das UserAccountPortlet übergeben und <strong>an</strong> die<br />

UserAccountBe<strong>an</strong> weitergegeben.<br />

Die Be<strong>an</strong> schickt die An<strong>fr</strong>age getDocList() mit <strong>der</strong> userID <strong>an</strong> die MediatorBe<strong>an</strong>, die sie<br />

<strong>an</strong> den Wrapper weiterleitet.<br />

212


16.5. BENUTZERKONTO<br />

Vom Wrapper wird die Liste <strong>der</strong> Dokumente über die MediatorBe<strong>an</strong> <strong>an</strong> die UserAccount-<br />

Be<strong>an</strong> zurückgegeben, die diese in <strong>der</strong> aktuellen Session speichert.<br />

Daraufhin k<strong>an</strong>n das UserAccountPortlet <strong>der</strong> GUI den Befehl, die Liste <strong>der</strong> Dokumente<br />

<strong>an</strong>zuzeigen, samt Daten übermitteln (siehe Abb. 16.15).<br />

Abbildung 16.15.: Sequenzdiagramm: Abrufen <strong>der</strong> Dokumentenübersicht<br />

Än<strong>der</strong>n des Accounts <strong>der</strong> digitalen Bibliothek<br />

Der Nutzer wählt auf s<strong>ein</strong>er Benutzungsoberäche den Account <strong>der</strong> digitalen Bibliothek<br />

aus, än<strong>der</strong>t ihn und wählt aus, diese Än<strong>der</strong>ungen zu speichern.<br />

Von <strong>der</strong> GUI werden diese An<strong>fr</strong>age und alle Än<strong>der</strong>ungen als Parameter <strong>an</strong> das UserAccountPortlet<br />

übergeben und <strong>an</strong> die UserAccountBe<strong>an</strong> weitergegeben.<br />

Die Be<strong>an</strong> schickt die An<strong>fr</strong>age setLibData mit <strong>der</strong> userID und allen Än<strong>der</strong>ungen <strong>an</strong> Hibernate<br />

und bekommt dafür <strong>ein</strong>e Bestätigung zurückgeliefert, die <strong>an</strong> das UserAccountPortlet<br />

geleitet wird.<br />

Daraufhin k<strong>an</strong>n das UserAccountPortlet <strong>der</strong> GUI den Befehl, die Bestätigung <strong>an</strong>zuzeigen,<br />

übermitteln (siehe Abb. 16.16).<br />

213


KAPITEL 16. ENTWURF<br />

Abbildung 16.16.: Sequenzdiagramm: Än<strong>der</strong>n des Accounts <strong>der</strong> digitalen Bibliothek<br />

Än<strong>der</strong>n <strong>der</strong> Such-/Benachrichtigungs<strong>ein</strong>stellungen<br />

Der Nutzer wählt auf s<strong>ein</strong>er Benutzungsoberäche s<strong>ein</strong> Benutzerkonto aus, än<strong>der</strong>t Sucho<strong>der</strong><br />

Benachrichtigungs<strong>ein</strong>stellungen und wählt aus, diese zu speichern.<br />

Von <strong>der</strong> GUI werden diese An<strong>fr</strong>age und alle Än<strong>der</strong>ungen als Parameter <strong>an</strong> das UserAccountPortlet<br />

übergeben und <strong>an</strong> die UserAccountBe<strong>an</strong> weitergegeben.<br />

Die Be<strong>an</strong> schickt die An<strong>fr</strong>age setSearchSettings bzw. setRemindSettings mit <strong>der</strong> userID<br />

und allen Än<strong>der</strong>ungen <strong>an</strong> Hibernate und bekommt dafür <strong>ein</strong>e Bestätigung zurückgeliefert,<br />

die <strong>an</strong> das UserAccountPortlet geleitet wird.<br />

Daraufhin k<strong>an</strong>n das UserAccountPortlet <strong>der</strong> GUI den Befehl, die Bestätigung <strong>an</strong>zuzeigen,<br />

mit allen Einstellungen übermitteln (siehe Abb. 16.17, 16.18).<br />

Abbildung 16.17.: Sequenzdiagramm: Än<strong>der</strong>n <strong>der</strong> Such<strong>ein</strong>stellungen<br />

214


16.5. BENUTZERKONTO<br />

Abbildung 16.18.: Sequenzdiagramm: Än<strong>der</strong>n <strong>der</strong> Benachrichtigungs<strong>ein</strong>stellungen<br />

Speichern <strong>der</strong> Suchgeschichte<br />

Der Nutzer wählt auf s<strong>ein</strong>er Benutzungsoberäche s<strong>ein</strong> Benutzerkonto aus und führt d<strong>an</strong>n<br />

<strong>ein</strong>e Suche aus.<br />

Von <strong>der</strong> GUI wird durch die Ausführung dieser Suche die An<strong>fr</strong>age, die Suchgeschichte zu<br />

speichern, mit <strong>der</strong> userID, dem searchString und <strong>der</strong> searchTime <strong>an</strong> das UserAccount-<br />

Portlet übergeben und <strong>an</strong> die UserAccountBe<strong>an</strong> weitergegeben.<br />

Die Be<strong>an</strong> schickt die An<strong>fr</strong>age setSearchHistory mit <strong>der</strong> userID und allen <strong>an</strong><strong>der</strong>en Parametern<br />

<strong>an</strong> Hibernate und bekommt dafür <strong>ein</strong>e Bestätigung zurückgeliefert, die <strong>an</strong> das<br />

UserAccountPortlet geleitet wird.<br />

Daraufhin k<strong>an</strong>n das UserAccountPortlet <strong>der</strong> GUI den Befehl, die Bestätigung <strong>an</strong>zuzeigen,<br />

mit allen Einstellungen übermitteln (siehe Abb. 16.19).<br />

Abbildung 16.19.: Sequenzdiagramm: Speichern <strong>der</strong> Suchgeschichte<br />

Verlängerung <strong>der</strong> Dokumente<br />

Der Nutzer wählt auf s<strong>ein</strong>er Benutzungsoberäche bestimmte Dokumente aus und wählt,<br />

dass er sie verlängern will.<br />

215


KAPITEL 16. ENTWURF<br />

Von <strong>der</strong> GUI werden diese An<strong>fr</strong>age und alle Än<strong>der</strong>ungen als Parameter <strong>an</strong> das UserAccountPortlet<br />

übergeben und <strong>an</strong> die UserAccountBe<strong>an</strong> weitergegeben.<br />

Die Be<strong>an</strong> schickt die An<strong>fr</strong>age extendDoc mit dem ResultElement über den Mediator <strong>an</strong><br />

den Wrapper und bekommt dafür <strong>ein</strong>e Bestätigung zurückgeliefert, die <strong>an</strong> das UserAccountPortlet<br />

geleitet wird.<br />

Daraufhin k<strong>an</strong>n das UserAccountPortlet <strong>der</strong> GUI den Befehl, die Bestätigung <strong>an</strong>zuzeigen,<br />

übermitteln. (siehe Abb. 16.20).<br />

Abbildung 16.20.: Sequenzdiagramm: Verlängerung <strong>der</strong> Dokumente<br />

Vormerken <strong>der</strong> Dokumente<br />

Der Nutzer wählt auf s<strong>ein</strong>er Benutzungsoberäche bestimmte Dokumente aus und wählt,<br />

dass er sie vormerken will.<br />

Von <strong>der</strong> GUI wird diese An<strong>fr</strong>age samt <strong>der</strong> Identikationen <strong>der</strong> Dokumente als Parameter<br />

<strong>an</strong> das UserAccountPortlet übergeben und <strong>an</strong> die UserAccountBe<strong>an</strong> weitergegeben.<br />

Die Be<strong>an</strong> schickt die An<strong>fr</strong>age reserveDoc mit dem ResultElement über den Mediator <strong>an</strong><br />

den Wrapper und bekommt dafür <strong>ein</strong>e Bestätigung zurückgeliefert, die <strong>an</strong> das UserAccountPortlet<br />

geleitet wird.<br />

Daraufhin k<strong>an</strong>n das UserAccountPortlet <strong>der</strong> GUI den Befehl, die Bestätigung <strong>an</strong>zuzeigen,<br />

übermitteln. (siehe Abb. 16.21).<br />

216


16.5. BENUTZERKONTO<br />

Abbildung 16.21.: Sequenzdiagramm: Vormerken <strong>der</strong> Dokumente<br />

Löschen <strong>der</strong> vorgemerkten Dokumente<br />

Der Nutzer wählt auf s<strong>ein</strong>er Benutzungsoberäche bestimmte vorgemerkte Dokumente<br />

aus und wählt, dass er sie löschen will.<br />

Von <strong>der</strong> GUI wird diese An<strong>fr</strong>age samt <strong>der</strong> Identikationen <strong>der</strong> Dokumente als Parameter<br />

<strong>an</strong> das UserAccountPortlet übergeben und <strong>an</strong> die UserAccountBe<strong>an</strong> weitergegeben.<br />

Die Be<strong>an</strong> schickt die An<strong>fr</strong>age deleteReservedDoc mit dem ResultElement über den Mediator<br />

<strong>an</strong> den Wrapper und bekommt dafür <strong>ein</strong>e Bestätigung zurückgeliefert, die <strong>an</strong> das<br />

UserAccountPortlet geleitet wird.<br />

Daraufhin k<strong>an</strong>n das UserAccountPortlet <strong>der</strong> GUI den Befehl, die Bestätigung <strong>an</strong>zuzeigen,<br />

übermitteln. (siehe Abb. 16.22).<br />

Abbildung 16.22.: Sequenzdiagramm: Löschen <strong>der</strong> vorgemerkten Dokumente<br />

Bis zu diesem Absatz wurden alle Arbeitsbereiche dokumentiert, auf welche nun die Be-<br />

217


KAPITEL 16. ENTWURF<br />

nutzungsoberäche aufsetzt.<br />

16.6. Benutzungsoberäche<br />

Die Benutzungsoberäche stellt die entscheidende Schnittstelle zwischen dem Benutzer<br />

und den ablaufenden Programmen dar. Da die Portlets des <strong>Bibliotheksdienste</strong>s Best<strong>an</strong>dteil<br />

des Liferay-Portals werden, werden diese sowohl optisch als auch strukturell <strong>an</strong> Liferay-<br />

Vorgaben <strong>an</strong>gepasst. Dabei wird groÿer Wert auf Einfachheit, Verständlichkeit und leichte<br />

Bedienung gelegt. Obwohl das Portal aufgrund s<strong>ein</strong>er Komplexität und Technologien<br />

(Javascript) nicht den Web-St<strong>an</strong>dards (W3C) entspricht und somit k<strong>ein</strong>e barriere<strong>fr</strong>eie<br />

Webseite mehr zulässt, werden die Portlets <strong>an</strong>h<strong>an</strong>d dieser Richtlinien entwickelt.<br />

Die Oberäche besteht aus 2 Hauptportlets, <strong>der</strong> Navigation und weiteren zusätzlichen<br />

Portlets. Das Such-Portlet stellt die Suchfunktionen und Ergebnisse zur Verfügung. Mit<br />

dem Benutzerkonto-Portlet ist es dem Benutzer möglich, Einstellungen <strong>ein</strong>zusehen und zu<br />

verän<strong>der</strong>n. Diese Funktionen stehen nur <strong>ein</strong>geloggten Benutzern und k<strong>ein</strong>en Gästen zur<br />

Verfügung, da diese Informationen personalisiert gespeichert werden.<br />

16.6.1. Client-seitige Darstellung<br />

Folgende Graken zeigen die Benutzungsoberäche:<br />

Abbildung 16.23.: GUI: Gesamt<strong>an</strong>sicht im Liferay-Portal<br />

Das Darstellungskonzept basiert auf zwei Haupt-Portlets, die beide über das Navigationsportlet<br />

<strong>an</strong>wählbar sind. Das <strong>ein</strong>e gibt das Benutzerkonto wie<strong>der</strong>, das <strong>an</strong><strong>der</strong>e die Such-<br />

218


16.6. BENUTZUNGSOBERFLÄCHE<br />

funktion. In dem zweiten Portlet wird je nach Wunsch aus dem Portletreiter die <strong>ein</strong>fache<br />

o<strong>der</strong> erweiterte Suche <strong>an</strong>gezeigt.<br />

Abbildung 16.24.: GUI: Liferay Navigations-Portlet<br />

Die <strong>ein</strong>fache Suche besteht aus drei Entscheidungskriterien. Zunächst gibt m<strong>an</strong> das Suchwort<br />

<strong>ein</strong>. Dieses k<strong>an</strong>n <strong>ein</strong> Schlagwort, Stichwort o<strong>der</strong> Autor darstellen. Eine Zeile tiefer<br />

k<strong>an</strong>n m<strong>an</strong> die Suche auf das ORBIS-Katalog beschränken o<strong>der</strong> über die Wahl global<br />

weitere Bibliotheken <strong>ein</strong>beziehen. Zuletzt wird dem Benutzer noch ermöglicht, die Ergebnisliste<br />

auf die zu Verfügung stehenden Medien zu reduzieren.<br />

Abbildung 16.25.: GUI: Such-Portlet (Einfache Suche)<br />

Die in <strong>der</strong> Abbildung 16.26 dargestellte erweiterte Suche soll den Benutzer die Möglichkeit<br />

geben, die Suche genauer zu spezizieren. Im Prinzip werden die schon in <strong>der</strong> <strong>ein</strong>fachen<br />

Suche <strong>an</strong>gegebenen Wahlmöglichkeiten in <strong>der</strong> erweiterten Suche weiter ausgearbeitet und<br />

dierenziert. So kommen zu <strong>der</strong> <strong>ein</strong>en Zeile für die Suchwort<strong>ein</strong>gabe in <strong>der</strong> erweiterten<br />

Fassung noch sechs Zeilen dazu. Auf diese Art k<strong>an</strong>n m<strong>an</strong> alle Informationen unterbringen,<br />

die m<strong>an</strong> über das gesuchte Objekt hat. Während vier Zeilen <strong>ein</strong>e feste Basis haben, stehen<br />

neben zwei die Beschreibung <strong>fr</strong>ei wählbar. Durch diese Option wird dem Benutzer<br />

ermöglicht, selbst Suchkriterien (z. B. <strong>ein</strong>e ISBN-Nummer) festzulegen. Während m<strong>an</strong> bei<br />

<strong>der</strong> <strong>ein</strong>fachen Suche nur den Status nur verfügbare Dokumente als Status-Einschränkung<br />

wählen konnte, hat m<strong>an</strong> bei <strong>der</strong> erweiterten Darstellung vier Möglichkeiten. Da das OR-<br />

BIS eigentlich aus vier verschiedenen <strong>Oldenburg</strong>er Bibliotheken besteht, werden diese in<br />

<strong>der</strong> erweiterten Vari<strong>an</strong>te <strong>ein</strong>zeln aufgezählt. Die Auswahl ORBIS o<strong>der</strong> global bleibt weiterhin<br />

bestehen. Als Vorlage zur Dokumenttypenauswahl wurde die GBV genommen.<br />

Dieses Aufteilungsprinzip ist in <strong>ein</strong>igen Internetbibliotheken wie<strong>der</strong>zunden. Daher entschied<br />

sich die Projektgruppe für diese Darstellungsform, um den Wie<strong>der</strong>erkennungswert<br />

für den Benutzer zu erhöhen.<br />

219


KAPITEL 16. ENTWURF<br />

Abbildung 16.26.: GUI: Such-Portlet (Erweiterte Suche)<br />

Die Ergebnisliste soll alle wichtigen Informationen wie Titel, Autor, Ersch<strong>ein</strong>ungsjahr,<br />

Verlag und <strong>ein</strong>e kurze Beschreibung direkt <strong>an</strong>zeigen. Der Dokumenttyp wird mittels <strong>ein</strong>es<br />

Icons dargestellt. Zudem k<strong>an</strong>n m<strong>an</strong> über <strong>ein</strong>en Button am rechten R<strong>an</strong>d den Status des<br />

Dokuments ersehen und ggf. direkt ausleihen o<strong>der</strong> vormerken. Über <strong>ein</strong>en Klick auf den<br />

Titel gel<strong>an</strong>gt m<strong>an</strong> zur Detail<strong>an</strong>sicht.<br />

220


16.6. BENUTZUNGSOBERFLÄCHE<br />

Abbildung 16.27.: GUI: Such-Portlet (Ergebnisausgabe)<br />

In <strong>der</strong> Detail<strong>an</strong>sicht werden alle zur Verfügung stehenden Informationen <strong>an</strong>gezeigt.<br />

221


KAPITEL 16. ENTWURF<br />

Abbildung 16.28.: GUI: Such-Portlet (Ergebnisausgabe mit Volldarstellung)<br />

Das Benutzerkonto ist die zentrale Schnittstelle zwischen Benutzer und Bibliothekdienst.<br />

Hier k<strong>an</strong>n m<strong>an</strong> die Ausgabe und Such<strong>ein</strong>stellungen kongurieren und Bibliotheksinformationen<br />

<strong>ein</strong>sehen. In Abbildung 16.29 werden die persönlichen Daten des Benutzers<br />

<strong>an</strong>gezeigt. Diese sind identisch mit den in Liferay gespeicherten Daten. Wenn weitere<br />

Bibliotheken <strong>an</strong> den Dienst <strong>an</strong>geschlossen werden, k<strong>an</strong>n m<strong>an</strong> die Proldaten dieser Bibiotheken<br />

hier ebenfalls <strong>ein</strong>sehen, falls <strong>der</strong> Benutzer für diese <strong>ein</strong>en Account <strong>an</strong>gelegt hat,<br />

siehe Abbildung 16.32.<br />

222


16.6. BENUTZUNGSOBERFLÄCHE<br />

Abbildung 16.29.: GUI: Benutzerkonto-Portlet (Persönliche Daten)<br />

In diesem Bereich k<strong>an</strong>n <strong>der</strong> Benutzer s<strong>ein</strong>e Such<strong>ein</strong>stellungen personalisieren und für zukünftige<br />

Suchen sichern.<br />

Abbildung 16.30.: GUI: Benutzerkonto-Portlet (Suchkriterien Einstellungen)<br />

In <strong>der</strong> Dokumentenübersicht, siehe Abbildung 16.31, sollen bestimmte Daten des Benutzerkontos<br />

des Benutzers aus dem URICA-System wie<strong>der</strong>gegeben werden. Diese Informationen<br />

bestehen aus den Mahngebühren, Leih<strong>fr</strong>isten und <strong>der</strong> Vormerkliste. Es sollte dem<br />

223


KAPITEL 16. ENTWURF<br />

Benutzer ebenfalls ermöglicht werden auf dies Informationen entsprechend zu reagieren.<br />

Zum Beispiel durch <strong>ein</strong>e Fristverlängerung.<br />

Abbildung 16.31.: GUI: Benutzerkonti-Portlet (Dokumentenübersicht)<br />

Der Bereich weitere Einstellungen des Benutzerkontos, soll dem Anwen<strong>der</strong> ermöglichen<br />

<strong>ein</strong>ige Erinnerungsfunktionen <strong>ein</strong>zustellen. Zudem sollen die neben dem ORBIS stehenden<br />

weiteren Bibliotheken hier <strong>ein</strong>gebunden werden. DAzu k<strong>an</strong>n <strong>der</strong> Benutzer sich zu je<strong>der</strong><br />

weiteren Bibliothek <strong>ein</strong>en Account <strong>an</strong>legen. Diese Funktionen stehen vorerst aber nicht zur<br />

Verfügung und werden erst mit <strong>ein</strong>gebunden, sobald weitere Bibliotheken <strong>an</strong> das System<br />

<strong>an</strong>geschlossen werden.<br />

224


16.6. BENUTZUNGSOBERFLÄCHE<br />

Abbildung 16.32.: GUI: Benutzerkonto-Portlet (Weitere Einstellungen)<br />

Dies ist <strong>ein</strong> Beispiel für <strong>ein</strong> <strong>ein</strong>faches Portlet, welches statisch Informationen, in diesem<br />

Fall die Önungszeiten, zur Verfügung stellt.<br />

Abbildung 16.33.: GUI: Beispiel für <strong>ein</strong> Informations-Portlet (Önungszeiten)<br />

Das Lesezeichen-Portlet dient dem Benutzer als Ablage für herausgesuchte Dokumente.<br />

Diese lassen sich in diesem Portlet ablegen und später gezielt in bestimmte Formate, wie<br />

z.B. Bibtex, exportieren.<br />

225


KAPITEL 16. ENTWURF<br />

Abbildung 16.34.: GUI: Lesezeichen-Portlet<br />

16.6.2. Portletaufbau<br />

Abbildung 16.35 zeigt die vorgesehenen Speicherorte <strong>der</strong> <strong>ein</strong>zelnen Webseiten auf dem<br />

Server. Dabei werden inhaltlich verw<strong>an</strong>dte Seiten in den selben Ordnern gespeichert. Somit<br />

sind die <strong>ein</strong>zelnen Portlets von<strong>ein</strong><strong>an</strong><strong>der</strong> getrennt und übersichtlich strukturiert. Graken<br />

und weitere benötigte Dateien werden in weiteren separaten Ordnern gespeichert.<br />

Abbildung 16.35.: GUI: Portlet-Struktur<br />

226


16.6. BENUTZUNGSOBERFLÄCHE<br />

16.6.3. JSP-Beschreibungen (Server-seitige Darstellung)<br />

Hier werden alle JSPs und weitere Dateien beschrieben. Im Ordner images benden sich<br />

alle benötigten Graken, während in <strong>der</strong> portlet.xml alle wichtigen Kongurationsparameter<br />

gespeichert werden.<br />

Datei<br />

init.jsp<br />

init-ext.jsp<br />

styles.css<br />

Funktionalität<br />

Liferay spezische Abhängigkeiten und Erweiterungen<br />

werden initialisiert<br />

Liferay spezische Anpassungen <strong>der</strong> Portlets<br />

CSS-Datei für grasche Anpassungen<br />

Tabelle 16.9.: Allgem<strong>ein</strong>e JSPs<br />

Datei<br />

adv<strong>an</strong>ce_search.jsp<br />

simple_search.jsp<br />

results.jsp<br />

result_simple.jsp<br />

result_adv<strong>an</strong>ced.jsp<br />

Funktionalität<br />

Die erweitere Suchmaske<br />

Die <strong>ein</strong>fache Suchmaske<br />

Die Ergebnisausgabe<br />

Ein kurzer Eintrag <strong>der</strong> Ergebnisausgabe<br />

Ein erweiterter Eintrag<br />

Tabelle 16.10.: Such-Portlet<br />

Datei<br />

personal_data.jsp<br />

document_overview.jsp<br />

search_criterion.jsp<br />

adv<strong>an</strong>ce_settings.jsp<br />

Funktionalität<br />

Darstellung personenbezogener Daten sowie später Accountdaten<br />

<strong>an</strong><strong>der</strong>er Bibliotheken<br />

Dokumentenübersicht, Mahngebühren und Hinweise<br />

Einstellungen <strong>der</strong> Suche<br />

Weitere Einstellungsmöglichkeiten<br />

Tabelle 16.11.: Benutzerkonto-Portlet<br />

Datei<br />

bookmarks.jsp<br />

export.jsp<br />

Funktionalität<br />

Anzeige <strong>der</strong> Lesezeichen<br />

Exportfunktionen für die Lesezeichen<br />

Tabelle 16.12.: Lesezeichen-Portlet<br />

Datei<br />

help.jsp<br />

tutorials.jsp<br />

faq.jsp<br />

contact.jsp<br />

Funktionalität<br />

Allgem<strong>ein</strong>e Hilfeseiten<br />

Anleitungen für verschiedene Funktionen<br />

Die wichtigsten Fragen und Antworten<br />

Kontaktdaten für persönliche Beratung<br />

Tabelle 16.13.: Hilfe-Portlet<br />

227


KAPITEL 16. ENTWURF<br />

Datei<br />

opening_hours.jsp<br />

Funktionalität<br />

statische Datei mit Informationen<br />

Tabelle 16.14.: Önungszeiten-Portlet<br />

16.7. Datenb<strong>an</strong>kmodellierung<br />

16.7.1. UserAccount<br />

Durch das Portal werden die Einstellungen (Such<strong>ein</strong>stellungen, Benachrichtigungs<strong>ein</strong>stellungen,<br />

Bibliotheks-Accounts, etc.) und die Suchgeschichte <strong>der</strong> Nutzer verwaltet, also sind<br />

die Entitäten UserAccount und SearchHistory notwendig, in denen die Einstellungen bzw.<br />

die Suchgeschichte mit ihren Attributen abgespeichert werden. Ihre Verwaltung wird von<br />

Hibernate mittels <strong>der</strong> geeigneten Datenb<strong>an</strong>k-Funktionen übernommen.<br />

Attribut Bedeutung Type<br />

userID Matrikelnummer o<strong>der</strong> Personalnummer int(10)<br />

libID Nutzername des Accounts <strong>der</strong> digitalen Bibliothek varchar(50)<br />

libPassword Passwort des Accounts <strong>der</strong> digitalen Bibliothek varchar(32)<br />

lendable Verfügbarkeit: ausleihbar tinyint(1)<br />

unlendable Verfügbarkeit: nicht ausleihbar tinyint(1)<br />

borrowed Verfügbarkeit: ausgeliehen tinyint(1)<br />

afterAgreement Verfügbarkeit: nach Absprache tinyint(1)<br />

searchArea Suchraum tinyint(1)<br />

country Herkunftsl<strong>an</strong>d varchar(50)<br />

remindDate Ablauf von Ausleih<strong>fr</strong>isten tinyint(2)<br />

remindFrequency Erinnerung <strong>an</strong> Ablauf von Ausleih<strong>fr</strong>isten tinyint(2)<br />

waitDocTime Verfügbarkeit von vorgemerkten Dokumenten tinyint(2)<br />

book Dokumenttyp: Bücher tinyint(1)<br />

audioMedium Dokumenttyp: Tonträger tinyint(1)<br />

m<strong>an</strong>uscript Dokumenttyp: M<strong>an</strong>uskripte tinyint(1)<br />

article Dokumenttyp: Aufsätze tinyint(1)<br />

onlineResource Dokumenttyp: Onlineressourcen tinyint(1)<br />

musicBook Dokumenttyp: Musikalien tinyint(1)<br />

cardMaterial Dokumenttyp: Kartenmaterial tinyint(1)<br />

videoMedium Dokumenttyp: Filme, Videos etc. tinyint(1)<br />

dataMedium Dokumenttyp: Datenträger tinyint(1)<br />

game Dokumenttyp: Spiele, Skulpturen, etc. tinyint(1)<br />

magazin Dokumenttyp: Zeitschriften/Serien tinyint(1)<br />

letter Dokumenttyp: Briefe tinyint(1)<br />

microche Dokumenttyp: Mikroformen tinyint(1)<br />

picture Dokumenttyp: Bil<strong>der</strong> tinyint(1)<br />

Tabelle 16.15.: Entität UserAccount<br />

228


16.7. DATENBANKMODELLIERUNG<br />

Attribut Bedeutung Type<br />

ID Eindeutige ID int(11)<br />

userID Matrikelnummer o<strong>der</strong> Personalnummer int(10)<br />

searchTime <strong>an</strong> diesem Datum wird Suche durchgeführt datetime<br />

searchString <strong>ein</strong>gegebene Wort/Wörter zum Suchen varchar(255)<br />

Tabelle 16.16.: Entität SearchHistory<br />

16.7.2. OAI-Wrapper<br />

Die Anbindung <strong>der</strong> OAI-Quelle CiteSeer benötigt, wie bereits erwähnt, <strong>ein</strong>e eigene Datenb<strong>an</strong>kstruktur,<br />

in <strong>der</strong> die entsprechenden Daten <strong>der</strong> Quelle zur lokalen Suche vorgehalten<br />

werden. Folgendes Tabellenlayout wird hierbei zur Speicherung <strong>der</strong> OAI-Metadaten sowie<br />

<strong>der</strong> Dublin Core Dokumentmetadaten verwendet:<br />

Entität Document zur Speicherung <strong>der</strong> <strong>ein</strong>zelnen Dokumente:<br />

Feld Beschreibung Typ<br />

OAI Source OAI Repository Server ID int(11)<br />

Identier Tag zur Identizierung varchar(150)<br />

DateStamp OAI Datums-Flag date<br />

setSpec OAI-Set varchar(50)<br />

dc_Title Titel des Dokumentes varchar(50)<br />

dc_Subject Thema des Dokumentes varchar(150)<br />

dc_Publisher Herausgeber varchar(150)<br />

dc_Description Beschreibung text<br />

dc_Date Ersch<strong>ein</strong>ungsdatum date<br />

dc_Format Format (Text/Bild/...) varchar(10)<br />

dc_Source Dokumentquelle varchar(150)<br />

dc_Identier <strong>Uni</strong>que Identier für das Dokument varchar(150)<br />

dc_L<strong>an</strong>guage Sprache varchar(10)<br />

dc_Rights Lizenz/Copyright varchar(50)<br />

Die Entität OAI Source hält verschiedene OAI Quellen vor:<br />

Feld Beschreibung Typ<br />

ID ID int(11)<br />

Name Name <strong>der</strong> Quelle varchar(30)<br />

URI URI <strong>der</strong> Quelle varchar(150)<br />

Entität Person zur (separaten) Speicherung <strong>ein</strong>zelner Personen:<br />

Feld Beschreibung Typ<br />

ID ID int(11)<br />

Name Name <strong>der</strong> Person varchar(50)<br />

Entität DC_Creator zur Zuordnung von Personen zu Dokumenten:<br />

229


KAPITEL 16. ENTWURF<br />

Feld Beschreibung Typ<br />

document_ID ID des Dokumentes varchar(150)<br />

person_ID ID <strong>der</strong> Person int(11)<br />

Entität DC_Relation zur Modellierung von Beziehungen zwischen Dokumenten:<br />

Feld Beschreibung Typ<br />

<strong>fr</strong>om_Identier Quelldokument varchar(150)<br />

to_Identier Zieldokument varchar(150)<br />

16.8. Testablauf<br />

16.8.1. Einführung<br />

Dieses Kapitel gibt nicht die vollständige Entwicklung des Testverfahrens wie<strong>der</strong>. Es ist<br />

mehr <strong>ein</strong> Abriss dessen. M<strong>an</strong> k<strong>an</strong>n es als Teil <strong>der</strong> ersten Phase des Testverfahrens für<br />

dieses Projekt <strong>an</strong>sehen; <strong>der</strong> Testpl<strong>an</strong>ung. Diese und die weiteren Phasen sind von dem<br />

St<strong>an</strong>dard ANSI/IEEE 829 (ISO12207) abgeleitet unter Zuhilfenahme des Buches von H.<br />

M. Sneed und M. Winter [SW02].<br />

16.8.2. Testverfahren<br />

Unser Testverfahren besteht aus 6 Phasen:<br />

1. Testpl<strong>an</strong>ung: In dieser Phase werden die Testziele bestimmt. Dazu betrachtet m<strong>an</strong><br />

die Abnahmekriterien <strong>der</strong> Anfor<strong>der</strong>ungsdenition zu diesem Projekt. Im weiteren<br />

werden die dazu gehörigen Aktivitäten gepl<strong>an</strong>t und <strong>der</strong> Testzeitraum begrenzt. Ein<br />

wichtiger Punkt ist ebenfalls die Bestimmung <strong>der</strong> notwendigen Ressourcen.<br />

2. Testentwurf: Hier entsteht die Konzeption <strong>der</strong> Testprozesse. Es geht darum, welche<br />

Komponenten und Funktionen in welcher Reihenfolge und auf welche Art getestet<br />

werden. Auf diese Weise erhält m<strong>an</strong> schlieÿlich <strong>ein</strong> Testkonzept.<br />

3. Testfallspezikation: Hierbei muss m<strong>an</strong> sich Ged<strong>an</strong>ken über das Verhalten des Testgegenst<strong>an</strong>ds<br />

machen. Um später <strong>ein</strong> Soll-Ist-Vergleich zu ermöglichen, wird in dieser<br />

Phase das zu erwartetende Verhalten notiert.<br />

4. Testdurchführung: Zunächst werden die Testfälle erzeugt. Darauf werden die benötigten<br />

Ressourcen bereitgestellt. Und <strong>an</strong>schlieÿend wird <strong>der</strong> Test durchgeführt.<br />

5. Testauswertung: Die Testauswertung besteht aus den Protokollen, die die Zwischenstände<br />

<strong>der</strong> verschiedenen Testabläufe festhalten und kontrollieren. Am Ende wird<br />

<strong>ein</strong> Testbericht entwickelt, aus dem hervorgehen wird, welche auÿergewöhnlichen Ergebnisse<br />

es gab, was noch zu verbessern ist und welche Ziele schon erreicht worden<br />

sind.<br />

6. Testwie<strong>der</strong>holung: Es werden die Tests wie<strong>der</strong>holt, in dessen Einussbereich Än<strong>der</strong>ungen<br />

stattgefunden haben.<br />

230


16.8. TESTABLAUF<br />

16.8.3. Testgegenst<strong>an</strong>d<br />

Ein Test bezieht sich immer auf <strong>ein</strong>en bestimmten Gegenst<strong>an</strong>d. Dieser Gegenst<strong>an</strong>d wird<br />

separat in s<strong>ein</strong>er eigenen Testumgebung getestet. Die zu testenden Gegenstände sind:<br />

• Methode: die kl<strong>ein</strong>ste testbare Einheit<br />

• Klasse: die nächst gröÿere Einheit<br />

• Klassenmenge: in diesem Projekt sind es die EJB's<br />

• Komponente: in diesem Fall bezieht es sich auf die entwickelten Portlets o<strong>der</strong> Pakete<br />

innerhalb <strong>der</strong> verschiedenen Schichten<br />

• System bzw. Applikation: das bedeutet, alle für das Bibliothekssystem entwickelten<br />

Komponenten integriert im Portal mit <strong>der</strong> zugehörigen Anbindung zur Datenb<strong>an</strong>k<br />

und den verschiedenen <strong>Bibliotheksdienste</strong>n<br />

16.8.4. Testmethoden<br />

Die Aufarbeitung <strong>der</strong> Testmethoden und dessen Zuteilung zu den Testgegenständen ist<br />

<strong>der</strong> bestimmende Teil des Testentwurfs.<br />

Statische Programm<strong>an</strong>alyse<br />

In <strong>der</strong> statischen Programm<strong>an</strong>alyse wird die Einhaltung <strong>der</strong> Spezikationen und <strong>der</strong> für<br />

dieses Projekt selbst aufgelegten Programmierregeln kontrolliert. Die Spezikationen, die<br />

befolgt werden und damit auch dessen Einhaltung kontrolliert werden müssen, sind die<br />

Portlet-Spezikationen, EJB-Spezikationen und weitere. Weiterhin wurden die Regeln<br />

beschlossen, alle Klassen und Methoden auf englisch zu kommentieren. Die Bezeichnungen<br />

sollen ebenfalls auf englisch s<strong>ein</strong>. Dieses Analyseverfahren bezieht sich auf jeden Testgegenst<strong>an</strong>d<br />

und ist deswegen k<strong>ein</strong>em spezisch zugeordnet.<br />

<strong>Uni</strong>t-Test<br />

Der <strong>Uni</strong>t-Test bezieht sich auf die Klassen und Methoden unserer Entwicklung. M<strong>an</strong><br />

testet, ob die Klassen und Methoden die gewünschte Arbeit verrichten, die richtigen Parameter<br />

erzeugen und verwenden und auch die Datentypen-Spezikationen <strong>ein</strong>gehalten<br />

werden.<br />

Integrationstest<br />

Im Integrationstest wird die Interaktion zwischen den Testgegenständen überprüft. Das<br />

fängt erst im Kl<strong>ein</strong>en <strong>an</strong>. Denn zunächst werden die Interaktion <strong>der</strong> Klassen innerhalb<br />

<strong>ein</strong>er EJB überprüft. D<strong>an</strong>n folgt die Betrachtung <strong>ein</strong>es Pakets. Und darauf werden die<br />

<strong>ein</strong>zelnen Portlets betrachtet. Die gröÿte und schwerste Arbeit ergibt sich in <strong>der</strong> Kontrolle<br />

<strong>der</strong> Interaktionen zwischen den groÿen Komponenten. Dafür ist es beson<strong>der</strong>s wichtig,<br />

sich die Spezikationen <strong>der</strong> entwickelten Schnittstellen zu betrachten. Durch sie erkennt,<br />

m<strong>an</strong> welche Komponenten von <strong>ein</strong><strong>an</strong><strong>der</strong> abhängig sind und welche Daten erhalten o<strong>der</strong><br />

weitergegeben werden. Somit k<strong>an</strong>n m<strong>an</strong> <strong>ein</strong>e Liste erstellen, aus <strong>der</strong> hervor geht, welche<br />

231


KAPITEL 16. ENTWURF<br />

<strong>der</strong> Komponenten mit<strong>ein</strong><strong>an</strong><strong>der</strong> direkt interagieren. Zur besseren Übersicht wird die Liste<br />

unter Zuhilfenahme <strong>der</strong> in Abschnitt 2.2 Umzusetzende Anwendungs-Architektur<br />

vorgestellten Schichten-Architektur weiter aufgeteilt.<br />

Liste <strong>der</strong> direkten Interaktion und damit die gem<strong>ein</strong>sam zu testenden Komponenten:<br />

1. Interaktion innerhalb Präsentationsschicht<br />

• Benutzerkonto-Portlet und GUI (JSP's)<br />

• Such-Portlet und GUI (JSP's)<br />

• Benutzerkonto-Portlet und Such-Portlet<br />

• Benutzerkonto-Portlet und Navigations-Portlet<br />

• Such-Portlet und Navigations-Portlet<br />

2. Interaktion zwischen Präsentationsschicht und Geschäftslogikschicht<br />

• Such-Portlet und Such(Geschäfts)logik<br />

3. Interaktion zwischen Geschäftslogikschicht und Datenzugrisschicht<br />

• Suchlogik und Mediator<br />

• Suchlogik und Persistenzklassen<br />

4. Interaktion zwischen Präsentationsschicht und Datenzugrisschicht<br />

• Benutzerkonto-Portlet und<br />

5. Interaktion innerhalb Datenzugrisschicht<br />

• Mediator und die verschiedenen Wrapper<br />

6. Interaktion zwischen Datenzugrisschicht und Datenhaltungsschicht<br />

Systemtest<br />

• Die verschiedenen Wrapper und dem dazugehörigen Bibliotheksdienst<br />

• Persistenzklassen und Datenb<strong>an</strong>k<br />

Beim Systemtest wird das System in s<strong>ein</strong>er Gesamtheit getestet. Also so wie <strong>der</strong> allgem<strong>ein</strong>e<br />

Benutzer auf das Bibliothekssystem zugreift mit allen s<strong>ein</strong>en Komponenten und dessen<br />

benötigten Ressourcen. Zunächst wird dabei von <strong>ein</strong>em intelligenten Benutzer ausgeg<strong>an</strong>gen.<br />

Damit wird kontrolliert, ob allen Anfor<strong>der</strong>ungen <strong>an</strong> die Entwicklung genüge get<strong>an</strong><br />

wurden. Anschlieÿend wird diese Anwendungssoftware noch aus <strong>der</strong> Sicht <strong>ein</strong>es weniger<br />

versierten Benutzer überprüft. Somit wird die Fehlerresistenz des Bibliothekssystems Benutzer<strong>ein</strong>gaben<br />

gegenüber getestet. Zur Durchführung dieser Testreihe sollen zunächst<br />

verschiedene Testszenarien entwickelt werden.<br />

232


16.8. TESTABLAUF<br />

Installationstest<br />

Da innerhalb dieses Projekts <strong>ein</strong>ige Spezikationen <strong>ein</strong>gehalten werden (von den Portlet-<br />

Spezikationen bis zu den Hibernate-Spezikationen), wird davon ausgeg<strong>an</strong>gen, dass diese<br />

Entwicklung weitestgehend plattformunabhängig ist. Jedoch gilt das erst noch zu bestätigen.<br />

Daher muss m<strong>an</strong> das Bibliothekssystem auf verschiedenen Plattformen installieren<br />

und ausprobieren. Auf diese Weise k<strong>an</strong>n m<strong>an</strong> die notwendigen Rahmenbedingungen festlegen,<br />

die <strong>ein</strong>en sicheren Arbeitsablauf <strong>der</strong> Entwicklung gewährleisten.<br />

Perform<strong>an</strong>ztest<br />

Da das Bibliothekssystem nicht nur für <strong>ein</strong>en Benutzer entwickelt wurde, son<strong>der</strong>n für viele<br />

Benutzer, die parallel damit arbeiten, muss auch die Belastbarkeit und die Robustheit<br />

<strong>der</strong> Entwicklung ausgetestet werden. Dazu werden die schon im Systemtest entwickelten<br />

Szenarien erneut <strong>an</strong>gewendet. Der Unterschied zum Systemtest ist aber, dass weniger auf<br />

die Fehler geachtet wird. Hierbei gilt es neben <strong>der</strong> Geschwindigkeit, in <strong>der</strong> das Produkt<br />

s<strong>ein</strong> Aufgabe erfüllt, hauptsächtlich um die Stabilität des Bibliothekssystems. Dabei muss<br />

<strong>ein</strong>e so hohe Belastung des Systems erzielt werden, dass sogar noch <strong>ein</strong>em Spielraum zur<br />

erwarteten wirklichen Belastung besteht.<br />

233


17. Implementierung<br />

In diesem Kapitel wird <strong>ein</strong> kurze Dokumentation <strong>der</strong> Implementierungsphase vorgenommen.<br />

Die Schwerpunkte liegen dabei insbeson<strong>der</strong>e auf <strong>ein</strong>er übersichtlichen Darstellung<br />

von Paketen und Klassen, <strong>ein</strong>er Herausarbeitung von gemachten Än<strong>der</strong>ungen gegenüber<br />

dem Entwurf und <strong>der</strong> Erläuterung <strong>ein</strong>iger beson<strong>der</strong>er Implementierungsdetails. Die Glie<strong>der</strong>ung<br />

des Kapitels orientiert sich <strong>ein</strong>mal mehr <strong>an</strong> den vier Bereichen Suchlogik, Mediator/Wrapper,<br />

Benutzerkonto und Benutzungsoberäche. Diese werden Umklammert<br />

von <strong>ein</strong>leitenden Erklärungen zur Datenstruktur und abschlieÿenden Erläuterungen zum<br />

Testverlauf.<br />

17.1. Datenstruktur<br />

Die Datenstruktur, wie sie im Entwurfsdokument (Kapitel 16) vorgesehen war, hat sich<br />

als recht stabil und sinnvoll erwiesen. Die vorgegebene Struktur wurde im Zuge <strong>der</strong> Implementierungsphase<br />

weiter verf<strong>ein</strong>ert, so dass sich nun <strong>ein</strong> recht komplexes Gesamtbild<br />

ergibt (vgl. Abb. 17.1).<br />

Die <strong>an</strong>fängliche Struktur ist aber dennoch wie vorgesehen erhalten geblieben. Einzig die<br />

Datentr<strong>an</strong>sfer-Objekte, wie sie im Kapitel 16.4.4 des Entwurfs vorgesehen waren, wurden<br />

sehr stark erweitert, so dass m<strong>an</strong> sie in <strong>der</strong> aktuellen Struktur nur schwerlich wie<strong>der</strong>ndet.<br />

Auf die Anpassungen, die hier nötig waren, soll <strong>an</strong> dieser Stelle nun im Einzelnen <strong>ein</strong>geg<strong>an</strong>gen<br />

werden.<br />

234


17.1. DATENSTRUKTUR<br />

Abbildung 17.1.: Gesamtpaketübersicht<br />

17.1.1. Das Package org.pgportal.ejb.dto<br />

Das Package org.pgportal.ejb.dto ist im Laufe <strong>der</strong> Entwicklung sehr komplex geworden,<br />

so dass es sinnvollerweise in mehrere Unterpakete aufgeteilt wurde.<br />

Im Haupt-Package (vgl. Abb. 17.2) ist <strong>ein</strong>e Klasse PortalDefaults <strong>an</strong>gelegt worden, die<br />

die eigentliche Kongurations<strong>ein</strong>heit des <strong>Bibliotheksdienste</strong>s darstellt. Hier werden die<br />

Attribute <strong>der</strong> Wrapper und die St<strong>an</strong>dardwerte für neue Benutzer deniert.<br />

235


KAPITEL 17. IMPLEMENTIERUNG<br />

Abbildung 17.2.: Paket org.pgportal.ejb.dto (globale Informationen)<br />

Das Package org.pgportal.ejb.dto.request<br />

Die Klassen <strong>der</strong> An<strong>fr</strong>ageobjekte sind in das Package org.pgportal.ejb.dto.request<br />

(vgl. Abb. 17.3) gekapselt worden. Für die Suche von Bedeutung ist hier die Klasse<br />

SearchObject, die für alle unterstützten Suchoptionen entsprechende Fel<strong>der</strong> bereithält.<br />

Diese Klasse musste im Laufe <strong>der</strong> Entwicklung eigentlich kaum <strong>an</strong>gepasst werden.<br />

Die Klasse UricaAccountRequest ist hingegen neu und hält den Benutzernamen und<br />

den Hashwert <strong>ein</strong>es Urica-Benutzerkontos für den integrierten Zugri auf die URICA<br />

Schnittstelle zum URICA-Benutzerkonto.<br />

236


17.1. DATENSTRUKTUR<br />

Abbildung 17.3.: Paket org.pgportal.ejb.dto.request (An<strong>fr</strong>age-Objekte)<br />

Das Package org.pgportal.ejb.dto.result<br />

Im Package org.pgportal.ejb.dto.result (vgl. Abb. 17.4) sind die Klassen für die<br />

Repräsentation von Suchergebnissen sowie <strong>der</strong> clientseitigen Darstellung von URICA-<br />

Benutzerkontodaten abgelegt.<br />

237


KAPITEL 17. IMPLEMENTIERUNG<br />

Alle Suchergebnisse haben bestimmte Fel<strong>der</strong> gem<strong>ein</strong>, die im Interface BasicResult deniert<br />

sind. Die Basisklasse BasicResultImpl implementiert dieses Interface und stattet<br />

entsprechende Objekte mit essentiellen Methoden für polymorphes Objekth<strong>an</strong>dling aus.<br />

Konkrete Suchergebnisse sind immer jeweils vom Typ Result o<strong>der</strong> ResultGroup, die beide<br />

von BasicResultImpl abgeleitet sind und die geerbten Attribute um spezische Fel<strong>der</strong><br />

für <strong>ein</strong> Einzelergebnis bzw. <strong>ein</strong>e Ergebnisgruppe erweitern. Die Klasse SearchResultSet<br />

stellt dabei das Wurzelelement für alle Ergebnisse <strong>ein</strong>er Such<strong>an</strong><strong>fr</strong>age dar und hält sie<br />

neben diversen (Meta-) Informationen über die Suche in <strong>ein</strong>er Java-Collection für die<br />

Darstellung bzw. weitere Verarbeitung bereit.<br />

Die Klassen UricaAccountInfo und UricaAccountResult repräsentieren das URICA-<br />

Benutzerkonto bzw. Einträge darin. Mit UricaCharge werden Mahngebühren im URICA-<br />

System abgebildet.<br />

238


17.1. DATENSTRUKTUR<br />

Abbildung 17.4.: Paket org.pgportal.ejb.dto.result (Ergebnis-Objekte)<br />

239


KAPITEL 17. IMPLEMENTIERUNG<br />

Das Package org.pgportal.ejb.dto.definitions<br />

Das Package org.pgportal.ejb.dto.definitions (vgl. Abb. 17.5) hält nun die Denitionsklassen<br />

<strong>der</strong> unterschiedlichen <strong>an</strong>gebundenen Quellen, die im Entwurf (noch recht grob)<br />

unter dem Interface InternetResource waren. Hier gilt es zwei Arten von Denitions-<br />

Klassen zu unterscheiden: zum <strong>ein</strong>en die Technologie-spezischen Quellen-Denitionen<br />

(z.B. OAIDefinition o<strong>der</strong> SRUDefinition), die jeweils <strong>ein</strong> Interface darstellen, welches<br />

die Attribute speziziert, die das System benötigt, um z.B. <strong>ein</strong>e (neue) SRU-basierte<br />

Quelle zu integrieren und die eigentlichen InternetResourcen hier SRUResource und<br />

OAIResource.<br />

Abbildung 17.5.: Paket org.pgportal.ejb.dto.definitions (Objekte für allgem<strong>ein</strong>e<br />

Denitionen)<br />

Alle quellen-spezischen Einstellungen zu <strong>ein</strong>er InternetResource werden in den zum<br />

Package gehörenden Sub-Packages (z.B. org.pgportal.ejb.dto.definitions.sru) abgelegt<br />

hier gibt es so z.B. <strong>ein</strong>e Klasse org.pgportal.ejb.dto.definitions.sru.-<br />

SRUDefinitionLoC, die das Interface SRUDefinition implementiert und alle nötigen Attribute<br />

für die Anbindung <strong>der</strong> Library of Congress hält (wie z.B. die An<strong>fr</strong>age-URL uvm.).<br />

Zur genauen Beschreibung dieser Klassen sei <strong>an</strong> dieser Stelle auf die JavaDoc verwiesen.<br />

240


17.2. SUCHLOGIK<br />

17.1.2. Das Package org.pgportal.ejb.mediator<br />

Im Mediator-Package hat sich nicht viel verän<strong>der</strong>t, ausser das die URICA-spezischen<br />

Funktionen (z.B. das Ab<strong>fr</strong>agen des URICA-Kontos) dazu geführt haben, dass hier zwei<br />

zusätzliche Klassen mit aufgenommen wurden. Im Detail wird hierauf im Abschnitt 17.3<br />

<strong>ein</strong>geg<strong>an</strong>gen.<br />

17.1.3. Das Package org.pgportal.ejb.search<br />

Für die Suchlogik war im Verlaufe <strong>der</strong> Implementierung k<strong>ein</strong>e Anpassung <strong>der</strong> Paketstruktur<br />

nötig. Funktionale Än<strong>der</strong>ungen <strong>der</strong> Klassen werden im Abschnitt 17.2 beschrieben.<br />

17.1.4. Das Package org.pgportal.ejb.wrapper<br />

Das Package org.pgportal.ejb.wrapper hat nun Sub-Packages bekommen, in denen<br />

die generischen Wrapper abgelegt sind. So b<strong>ein</strong>haltet das Sub-Package org.pgportal.-<br />

ejb.wrapper.sru (vgl. Abschnitt 17.3.4) den Wrapper für SRU-basierte Quellen und<br />

org.pgportal.ejb.wrapper.oai (vgl. Abschnitt 17.3.5) den Wrapper für Suchen in OAIbasierten<br />

Quellen. Diese Verf<strong>ein</strong>erung ist dafür gedacht, um auch bei <strong>ein</strong>er zukünftigen<br />

Erweiterung, z.B. um z3950-basierte Quellen, <strong>ein</strong>e klare Struktur vorzuhalten.<br />

17.1.5. Das Package org.pgportal.ejb.userAccount<br />

Die Än<strong>der</strong>ungen im UserAccount werden im Abschnitt 17.4 beschrieben. Im Verlaufe <strong>der</strong><br />

Implementierung mussten hier <strong>ein</strong>ige Methoden <strong>an</strong>gepasst werden.<br />

17.1.6. Das Package org.pgportal.ejb.util<br />

Das package org.pgportal.ejb.util enthält als Utility-Package Hilftklassen für den<br />

Umg<strong>an</strong>g mit EJB-Komponenten. So führt das Interface EjbJndiNames die JNDI-Namen<br />

<strong>der</strong> EJB-Komponenten auf, damit diese mittels JNDI-lookups gefunden werden können.<br />

Die Namensdenitionen werden etwa von <strong>der</strong> Klasse EjbLocalHomeFactory benutzt, die<br />

das Factory-Pattern für Referenzen zu den Home-Interfaces <strong>der</strong> EJB-Komponenten umsetzt.<br />

Abbildung 17.6.: Paket org.pgportal.ejb.util (Hilfsklassen)<br />

17.2. Suchlogik<br />

Das folgende Unterkapitel beschäftigt sich mit den Implementierungsdetails <strong>der</strong> Suchlogik.<br />

Dabei wird beson<strong>der</strong>s auf vorgenommene Än<strong>der</strong>ungen im Vergleich zum Entwurf<br />

241


KAPITEL 17. IMPLEMENTIERUNG<br />

dieser Schicht <strong>ein</strong>geg<strong>an</strong>gen. Aber auch neue Konzepte insbeson<strong>der</strong>e aus dem Bereich des<br />

R<strong>an</strong>kings, die im Vorfeld nur sehr schlecht zu pl<strong>an</strong>en waren werden erläutert.<br />

Die Implementierung <strong>der</strong> Suchlogik wurde wie im Entwurf vorgesehen mittels <strong>ein</strong>er zust<strong>an</strong>dslosen<br />

SessionBe<strong>an</strong> realisiert. Sie bendet sich im Paket org.pgportal.ejb.search<br />

und b<strong>ein</strong>haltet Methoden sowohl öentliche Business-Methoden als auch private Hilfsmethoden<br />

die sich grob in vier Gruppen klassizieren lassen, um die Hauptaufgabe<br />

rund um das Suchen und Sortieren von Datensätzen zu bewerkstelligen. Da sind zum<br />

<strong>ein</strong>en Methoden zur Filterung und Datenber<strong>ein</strong>igung von Eingaben und Suchergebnissen<br />

und zum <strong>an</strong><strong>der</strong>en die Methoden zur Bestimmung <strong>der</strong> Relev<strong>an</strong>z <strong>ein</strong>zelner Ergebnisse.<br />

Des Weiteren gibt es noch Methoden zur Speicherung <strong>der</strong> Such-Chronik, genauso wie<br />

die EJB-spezischen Methoden zur Regelung des Lebenszyklus. Im folgenden werden die<br />

Methoden dieser vier Bereiche sowie <strong>der</strong> Suche und Sortierung selbst näher erläutert.<br />

17.2.1. Methoden zur Suche und Sortierung<br />

Die Business-Methoden zur Suche und zum Sortieren von Datensätzen sind die elementaren<br />

Best<strong>an</strong>dteile <strong>der</strong> EJB und sind wie im Entwurf speziziert implementiert worden.<br />

Die Suche als Hauptfunktion führt zahlreiche Unteraufgaben aus, wie das Kontrollieren<br />

<strong>der</strong> Suchparameter, das Weiterleiten <strong>der</strong> ber<strong>ein</strong>igten Parameter zur eigentlichen Suche <strong>an</strong><br />

den Mediator, das Filtern und Anpassen <strong>der</strong> erhaltenen Ergebnisse, die Ermittlung <strong>ein</strong>es<br />

Relev<strong>an</strong>zwertes für die Ergebnisse, die Sortierung <strong>der</strong> Ergebnisse nach Vorgabe des Benutzers<br />

sowie <strong>ein</strong>e Speicherung <strong>der</strong> Such<strong>an</strong><strong>fr</strong>age für die Such-Chronik. Alle diese Funktionen<br />

wurden auf kl<strong>ein</strong>ere Teilfunktionen heruntergebrochen, die zum Teil wie<strong>der</strong>um kl<strong>ein</strong>ere<br />

Teilfunktionen nötig machten. Die Wartbarkeit wurde durch dieses Vorgehen erheblich<br />

gesteigert. Die entsprechenden Hilfsmethoden werden d<strong>an</strong>n in den nachfolgenden vier<br />

Abschnitten beschrieben.<br />

• search(): Diese Business-Methode ist die Hauptfunktion <strong>der</strong> EJB. Sie bekommt die<br />

Suchparameter in Form <strong>ein</strong>es SearchObjects vom Portlet übergeben und initiiert<br />

zunächst <strong>ein</strong>e Kontrolle <strong>der</strong> Parameter auf richtige Angaben und erlaubte Zeichen.<br />

Die ber<strong>ein</strong>igten Parameter werden nun zur eigentlichen Suche <strong>an</strong> den Mediator delegiert.<br />

Die zurückgelieferten Ergebnisse werden d<strong>an</strong>n geltert, <strong>an</strong>gepasst und mit<br />

<strong>ein</strong>em R<strong>an</strong>kingwert versehen. Erst jetzt ndet <strong>ein</strong>e Sortierung nach den Angaben<br />

des Benutzers und mit Hilfe <strong>der</strong> Hilfsmethode doSort() statt. Abschlieÿend folgt<br />

noch die Speicherung <strong>der</strong> Such<strong>an</strong><strong>fr</strong>age in <strong>der</strong> Datenb<strong>an</strong>k.<br />

• sort(): Diese Business-Methode führt <strong>ein</strong>e Sortierung <strong>ein</strong>er Ergebnismenge durch.<br />

Ein Parameter gibt dabei <strong>an</strong>, nach welchem Kriterium die Suchergebnisse sortiert<br />

werden sollen. Die eigentliche Sortierung wird durch die Hilfsfunktion doSort()<br />

ausgeführt, so dass diese Funktionalität von mehreren Methoden genutzt werden<br />

k<strong>an</strong>n.<br />

• doSort(): Diese Methode nimmt die Sortierung <strong>ein</strong>er Ergebnismenge vor.<br />

17.2.2. Methoden zur Filterung und Datenber<strong>ein</strong>igung<br />

Im Entwurf zur Suchlogik sind nur Methoden zur groben Aufgabenteilung speziziert<br />

worden insbeson<strong>der</strong>e die Business-Methoden. Ein f<strong>ein</strong>eres Methodengerüst mit allen<br />

242


17.2. SUCHLOGIK<br />

nötigen Hilfsmethoden sollte erst zur Implementierung folgen. Die Aufgaben zur Filterung<br />

und Datenber<strong>ein</strong>igung <strong>der</strong> Eingaben und Suchergebnisse können sehr komplex ausfallen.<br />

Im folgenden die implementierten Methoden:<br />

• checkParam(): Diese Methode überprüft die Eingaben, die <strong>der</strong> Benutzer bei <strong>der</strong><br />

Eingabe <strong>ein</strong>er Such<strong>an</strong><strong>fr</strong>age macht. Sie verhin<strong>der</strong>t u. a. <strong>ein</strong>e Eingabe von HTML-<br />

Tags.<br />

• checkUID(): Diese Methode prüft, ob die UserID gesetzt ist.<br />

• charReplacer(): Diese Methode ersetzt bestimmte Zeichen(ketten) durch <strong>an</strong><strong>der</strong>e.<br />

Sie wird insbeson<strong>der</strong>e von <strong>der</strong> Methode checkParam() verwendet, um z. B. die<br />

Zeichen zum Ausführen von HTML-Code zu ersetzen.<br />

• filterResults(): Mittels dieser Methode ndet <strong>ein</strong>e Filterung <strong>der</strong> übergebenen<br />

Ergebnisse statt. Hauptziel ist <strong>ein</strong>e Ber<strong>ein</strong>igung und Ver<strong>ein</strong>heitlichung <strong>der</strong> <strong>ein</strong>zelnen<br />

Fel<strong>der</strong> <strong>ein</strong>es Ergebnisses. Die folgenden Hilfsfunktionen kommen <strong>an</strong> dieser Stelle zum<br />

Einsatz.<br />

• removePunctuationMarks(): Diese Methode entfernt unnötige Satzzeichen am Ende<br />

<strong>ein</strong>er Zeichenkette, wie z. B.: , . ; ! o<strong>der</strong> ?.<br />

• chopSuffixChars(): Diese Methode kürzt <strong>ein</strong>e Zeichenkette um <strong>ein</strong>e <strong>an</strong><strong>der</strong>e, sollte<br />

sie sich am Ende <strong>der</strong> Zeichenkette benden.<br />

• chopPrefixChars(): Diese Methode kürzt <strong>ein</strong>e Zeichenkette um <strong>ein</strong>e <strong>an</strong><strong>der</strong>e, sollte<br />

sie sich am Anf<strong>an</strong>g <strong>der</strong> Zeichenkette benden.<br />

• eliminateDublicateAbstracts(): Diese Methode überprüft, ob es unter den Abstracts<br />

<strong>ein</strong>es Dokuments Duplikate gibt und entfernt diese entsprechend.<br />

17.2.3. Methoden zur Relev<strong>an</strong>zbestimmung<br />

Eine weitere wichtige Aufgabe im Rahmen <strong>der</strong> Suchfunktion stellt die Bestimmung <strong>der</strong><br />

Relev<strong>an</strong>z <strong>ein</strong>es Ergebnisses dar. Da Kriterien für die Relev<strong>an</strong>z <strong>ein</strong>es Ergebnisses in hohem<br />

Maÿe subjektiv sind und viele <strong>der</strong> im Entwurf <strong>an</strong>gesprochenen Technologien aufgrund <strong>der</strong><br />

Nutzung zahlreicher verschiedener Bibliotheks<strong>an</strong>gebote und Schnittstellen nicht umgesetzt<br />

werden können, liegt das Hauptaugenmerk auf das Berücksichtigen von Vorkommen<br />

<strong>der</strong> Suchbegrie in den Ergebnisfel<strong>der</strong>n.<br />

Der Berechnungsschlüssel zur Bestimmung <strong>der</strong> Relev<strong>an</strong>z <strong>ein</strong>es Wertes ist sehr dierenziert.<br />

Ohne nun im Detail erklären zu wollen, wie sich <strong>ein</strong> Relev<strong>an</strong>zwert konkret errechnen<br />

lässt, sollen nun <strong>ein</strong> paar umgesetzte Ideen dazu beschrieben werden. Es werden exakte<br />

und fast exakte Vorkommen des Suchstrings gezählt und berücksichtigt. Auch <strong>ein</strong>zelne<br />

Wörter des Suchstrings werden dahingehend in das Kalkül <strong>ein</strong>bezogen wobei zwischen<br />

Wortklassen unterschieden und unterschiedlich gewichtet wird. Das bedeutet, dass z. B.<br />

Artikel weniger ins Gewicht fallen als normale Nomen. Genauso werden die Wort- und<br />

Suchstringvorkommen für jedes Eingabefeld <strong>an</strong><strong>der</strong>s bewertet. Die Anzahl <strong>der</strong> Treer in<br />

<strong>ein</strong>em Abstract z. B. wird mit dem logistischen Wachstum gewichtet, um die Länge von<br />

Abstracts in <strong>ein</strong>e vergleichbare Relation zur Länge von Titel- o<strong>der</strong> Autorenfel<strong>der</strong>n zu<br />

setzen. Auch wird berücksichtigt, in welcher Bibliothek <strong>ein</strong> Ergebnis gefunden wurde.<br />

243


KAPITEL 17. IMPLEMENTIERUNG<br />

Das Erstellen <strong>ein</strong>es ausgewogenen Relev<strong>an</strong>zsystems bedarf vieler Tests mit unterschiedlichen<br />

Parameter<strong>ein</strong>stellungen für die unterschiedlichen Faktoren und Gewichte. Die Implementierung<br />

<strong>der</strong> vorgestellten Ideen wurde durch die folgenden Methoden realisiert.<br />

• calcRelev<strong>an</strong>ce(): Diese Methode ist <strong>der</strong> zentrale Einstiegspunkt für die Relev<strong>an</strong>zberechnung.<br />

Sie bekommt die Ergebnismenge übergeben und weist jedem Ergebnis<br />

<strong>ein</strong>en Relev<strong>an</strong>zwert zu.<br />

• setElementRelev<strong>an</strong>ce(): Diese Methode bekommt <strong>ein</strong> Suchergebnis und die Suchparameter<br />

übergeben und bestimmt <strong>an</strong>h<strong>an</strong>d dieser Daten <strong>ein</strong>en Relev<strong>an</strong>zwert.<br />

• iterateRelev<strong>an</strong>ceCalculation(): Diese Hilfsmethode von setElementRelev<strong>an</strong>ce()<br />

berechnet <strong>ein</strong>en Relev<strong>an</strong>zwert aus <strong>ein</strong>em Faktor, dem Suchstring und dem Ergebnis.<br />

• calcStringDist<strong>an</strong>ce(): Diese Hilfsmethode ermittelt <strong>ein</strong>en Relev<strong>an</strong>zfaktor mittels<br />

Aufsummieren von unterschiedlichen Vorkommen von Suchwörtern in den Ergebnisfel<strong>der</strong>n.<br />

• calcOccurences(): Diese Methode zählt die Anzahl <strong>der</strong> Vorkommen <strong>ein</strong>es Suchbegris<br />

in <strong>ein</strong>em Ergebnisfeld hier nur in Abstracts und gewichtet diese Anzahl<br />

mit dem logistischen Wachstum.<br />

• countOccurences(): Diese Methode zählt die Vorkommen <strong>ein</strong>er Zeichenkette in<br />

<strong>ein</strong>er <strong>an</strong><strong>der</strong>en Zeichenkette.<br />

17.2.4. Methoden zur Speicherung <strong>der</strong> Such-Chronik<br />

Um gemachte Such<strong>an</strong><strong>fr</strong>agen auch später nachvollziehen zu können, wird dem Benutzer <strong>ein</strong>e<br />

Such-Chronik <strong>ein</strong>e chronologisch sortierte Liste ausgeführter Such<strong>an</strong><strong>fr</strong>agen <strong>an</strong>geboten.<br />

Zu diesem Zweck hält die Suchlogik Methoden zum Speichern und Ab<strong>fr</strong>agen von An<strong>fr</strong>agen<br />

vor. Auch können alle gespeicherten An<strong>fr</strong>agen <strong>ein</strong>es Benutzers aus <strong>der</strong> Datenb<strong>an</strong>k entfernt<br />

werden. Zur Speicherung <strong>ein</strong>er Such<strong>an</strong><strong>fr</strong>age, wird das entsprechende SearchObject als<br />

Datenobjekt, das alle Parameter zu <strong>ein</strong>er Suche kapselt serialisiert als BLOB in <strong>der</strong><br />

Datenb<strong>an</strong>k abgelegt.<br />

• setSearchHistory(): Diese Methode legt <strong>ein</strong>e Such<strong>an</strong><strong>fr</strong>age in Form <strong>ein</strong>es Search-<br />

Objects in <strong>der</strong> Datenb<strong>an</strong>k ab.<br />

• getSearchHistory(): Mittels dieser Methode wird die Such-Chronik zu <strong>ein</strong>em Benutzer<br />

aus <strong>der</strong> Datenb<strong>an</strong>k geholt.<br />

• removeSearchHistory(): Diese Methode entfernt alle gespeicherten Such<strong>an</strong><strong>fr</strong>agen<br />

<strong>ein</strong>es Benutzers aus <strong>der</strong> Datenb<strong>an</strong>k.<br />

• serialize(): Diese Methode serialisiert <strong>ein</strong> SearchObject in <strong>ein</strong> BLOB zur Speicherung<br />

in <strong>der</strong> Datenb<strong>an</strong>k.<br />

• deserialize(): Diese Methode deserialisiert <strong>ein</strong> BLOB zurück in <strong>ein</strong> SearchObject.<br />

244


17.2. SUCHLOGIK<br />

17.2.5. EJB-spezische Methoden<br />

Die EJB-spezischen Methoden müssen von je<strong>der</strong> EJB implementiert werden - sie regeln<br />

den Lebenszyklus. Diese folgenden Methoden halten sich <strong>an</strong> die Sun EJB 2.1 Spezikation<br />

1 :<br />

• ejbCreate()<br />

• ejbRemove()<br />

• ejbActivate()<br />

• ejbPassivate()<br />

• setSessionContext()<br />

17.2.6. Klassenbeschreibung<br />

Bei <strong>der</strong> Implementierung <strong>der</strong> oben erläuterten Methoden wurde in hohem Maÿe auf <strong>ein</strong>e<br />

hohe Wartbarkeit und <strong>ein</strong>e klare Aufgabenverteilung hinsichtlich <strong>der</strong> Funktionalität <strong>der</strong><br />

Methoden geachtet. Teilaufgaben wurden, wo es Sinn machte, in neue Methoden ausgeglie<strong>der</strong>t,<br />

so dass Funktionalität nicht redund<strong>an</strong>t implementiert wurde. Eine Übersicht des<br />

Aufbaus <strong>der</strong> Klasse <strong>der</strong> SessionBe<strong>an</strong> sowie <strong>ein</strong>e Darstellung ihrer Beziehungen zu <strong>an</strong><strong>der</strong>en<br />

Klassen und implementierten Interfaces liefert Abbildung 17.7.<br />

Abbildung 17.7.: Klassendiagramm <strong>der</strong> Suchlogik<br />

1<br />

http://java.sun.com/products/ejb/ - J2EE Enterprise JavaBe<strong>an</strong>s Technology<br />

245


KAPITEL 17. IMPLEMENTIERUNG<br />

17.3. Mediator / Wrapper<br />

Im Folgenden wird auf Beson<strong>der</strong>heiten bzw. Auälligkeiten im Zuge <strong>der</strong> Implementierung<br />

des Mediators bzw. des Wrappers <strong>ein</strong>geg<strong>an</strong>gen.<br />

17.3.1. Mediator<br />

Das Mediator-Konzept zur Zusammenführung sämtlicher Suchergebnisse hat sich im Laufe<br />

<strong>der</strong> Entwicklung des Gesamtsystems als sehr nützlich und sinnvoll erwiesen. Der Mediator<br />

stöÿt die eigentliche Suche <strong>an</strong>, er inst<strong>an</strong>tiiert entsprechend <strong>der</strong> Anzahl <strong>der</strong> zu durchsuchenden<br />

Quellen die Wrapper, die die eigentliche Such<strong>an</strong><strong>fr</strong>age durchführen, und führt<br />

<strong>der</strong>en Ergebnisse zusammen. Dieses Konzept wurde entsprechend <strong>der</strong> Spezikationen im<br />

Entwurf umgesetzt.<br />

Einzig die Duplikateliminierung bzw. das Zusammenführen von mehreren Exemplaren<br />

als <strong>ein</strong>e Entität hat sich im Nachhin<strong>ein</strong> als etwas komplizierter als zuvor <strong>an</strong>genommen<br />

herausgestellt. Die Suchergebnisse, die die <strong>ein</strong>zelnen Quellen liefern, sind nicht immer<br />

vollständig o<strong>der</strong> korrekt: So kommt es vor, dass <strong>ein</strong>e Suche z.B. zwei Dokumente mit<br />

gleichem Titel und denselben Autoren liefert, aber d<strong>an</strong>n bei <strong>ein</strong>em Exemplar k<strong>ein</strong>e (o<strong>der</strong><br />

<strong>ein</strong>e <strong>ein</strong>deutig falsche) ISBN-Nummer ausgibt. In solchen nicht <strong>ein</strong>deutigen Fällen geht<br />

<strong>der</strong> Mediator pessimistisch vor und liefert d<strong>an</strong>n schonmal zwei Dokumente, <strong>an</strong>statt diese<br />

als Dokumentgruppe mit zwei Exemplaren zusammenzuführen. Hier hat sich auch gezeigt<br />

wie stark Quellen qualitativ von<strong>ein</strong><strong>an</strong><strong>der</strong> abweichen können: Die von uns zusätzlich über<br />

SRU mit <strong>ein</strong>gebundene National Science Digital Library, die online verfügbare Dokumente<br />

indiziert, liefert so z.B. sehr häug Duplikate, von denen <strong>ein</strong> Groÿteil auch noch nicht<br />

lesbare Zeichen, die durch fehlerhafte utf-8 Konvertierung entst<strong>an</strong>den sind, im Titel o<strong>der</strong><br />

im Abstract haben.<br />

Ebenfalls ärgerlich war, dass es uns nicht möglich gewesen ist, das bestehende Bibliothekssystem<br />

ORBIS komplett <strong>ein</strong>zubinden. Wir sind zwar in <strong>der</strong> Lage das Benutzerkonto von<br />

ORBIS auszulesen sofern <strong>der</strong> Benutzer des Systems die entsprechenden Daten (Urica-ID<br />

und Password) zur Verfügung stellt aber unsere Schnittstelle zu ORBIS erlaubt lei<strong>der</strong><br />

nicht das Vormerken <strong>ein</strong>es Dokumentes, da dieses wohl zu Kollisionen mit dem bestehenden<br />

System führen würde.<br />

Die Struktur des Mediators ist im Abb. 17.8 aufgezeigt.<br />

246


17.3. MEDIATOR / WRAPPER<br />

Abbildung 17.8.: Klassendiagramm des Mediators<br />

17.3.2. Methoden des Mediators<br />

Die eigentlichen Business-Methoden des Mediators sind:<br />

• search(): Diese Methode führt die Suche durch. Hier werden die Wrapper über <strong>ein</strong>e<br />

JMS-Queue <strong>an</strong>gestoÿen, die Ergebnisobjekte abgewartet und <strong>ein</strong>e Duplikateliminierung<br />

durchgeführt. Die Suchlogik (= die Schicht die diese Methode benutzt) k<strong>an</strong>n<br />

nun auf <strong>ein</strong>em kompletten SearchResultSet, das die Ergebnisse sämtlicher Quellen<br />

enthält, ihre Relev<strong>an</strong>zbestimmung ausführen und Optimierungen vornehmen.<br />

• checkUricaAccountInfo(): Diese Methode ist für das Überprüfen von UserName-<br />

Passort Tupeln für Das URICA-Konto gedacht. Faktisch führt <strong>der</strong> Mediator <strong>ein</strong><br />

Login bei URICA aus und testet, ob dieser erfolgreich war.<br />

• getUricaAccountInfo(): Die eigentliche Schnittstelle zum URICA-Konto. Hier<br />

wird <strong>ein</strong>e komplette Statusab<strong>fr</strong>age des URICA-Accounts durchgeführt.<br />

Die EJB-spezischen Methoden (vgl. Abschnitt 17.2.5 bei <strong>der</strong> Suchlogik) sowie die nötigen<br />

EJB-Interfaces sind hier natürlich ebenso vorh<strong>an</strong>den, sollen aber nicht extra nochmals<br />

erklärt werden.<br />

Im Gegensatz zum Entwurf nutzt <strong>der</strong> Mediator zwei zusätzliche Klassen (UricaAccount-<br />

Connector und UricaAccountParser) zum Aufbau <strong>der</strong> Verbindung zum URICA System<br />

247


KAPITEL 17. IMPLEMENTIERUNG<br />

bzw. zum Parsen <strong>der</strong> URICA Antwort (XML). Im ursprünglichen Entwurf war vorgesehen,<br />

diese Funktionalitäten komplett mit in die EJB zu nehmen, was aber aus Gründen <strong>der</strong><br />

Übersichtlichkeit und Lesbarkeit im Code externalisiert wurde. Das XML-h<strong>an</strong>dling wird<br />

über <strong>ein</strong>en SAX-Parser realisiert.<br />

17.3.3. Wrapper<br />

Die Wrapper haben sich in <strong>der</strong> Implementierung (vgl. Abb. 17.9) hinsichtlich des Entwurfs<br />

nicht verän<strong>der</strong>t. Es h<strong>an</strong>delt sich nach wie vor um Message-Driven Be<strong>an</strong>s, die über<br />

das Interface DefaultWrapper den jeweils richtigen, d.h. zur Quelle passenden Wrapper<br />

inst<strong>an</strong>tiieren und die Suche <strong>an</strong>stoÿen.<br />

Abbildung 17.9.: Paket org.pgportal.ejb.wrapper (DefaultWrapper)<br />

17.3.4. SRU-Wrapper<br />

Der SRU-Wrapper (Abb. 17.10) ist sozusagen <strong>der</strong> älteste unter den Wrappern und <strong>der</strong><br />

erste, <strong>der</strong> die Struktur im Entwurf komplett umgesetzt hat. Da das SRU-Protokoll XMLbasiert<br />

ist und nicht bei allen SRU-Quellen <strong>ein</strong> (korrektes) XML-Schema vorlag, haben<br />

wir den generischen SRU-Wrapper auf Basis <strong>ein</strong>es SAX-Parsers implementiert.<br />

Die Klasse SRUWrapper stellt hier die Verbindung zum jeweiligen SRU-Server (basierend<br />

auf den Daten, die für die Quelle in <strong>der</strong> SRUDefinition hinterlegt sind), und stellt die<br />

An<strong>fr</strong>age in Form <strong>der</strong> SRU-üblichen cql-Notation.<br />

Das Parsen <strong>der</strong> resultierenden XML-Antwort des Servers übernimmt d<strong>an</strong>n <strong>der</strong> SRUParser,<br />

<strong>der</strong> <strong>ein</strong>en typischen SAX-H<strong>an</strong>dler implementiert (daher Methoden wie startDocument,<br />

endDocument, etc). Der H<strong>an</strong>dler regiert auf die jeweiligen Tags, die in <strong>der</strong> SRUDefinition<br />

dieser spezischen Quelle hinterlegt sind (z.B. XML_TAG_AUTHOR) und ordnet<br />

die identizierten Werte im Result-Objekt zu.<br />

248


17.3. MEDIATOR / WRAPPER<br />

Abbildung 17.10.: Paket org.pgportal.ejb.wrapper.sru (Wrapper zur Suche auf SRUbasierenden<br />

Quellen)<br />

17.3.5. OAI-Wrapper<br />

Aufgrund <strong>der</strong> Än<strong>der</strong>ungen <strong>der</strong> Datenstruktur in den DTOs wurde auch <strong>der</strong> OAI-Wrapper<br />

auf <strong>ein</strong>e entsprechende Struktur bestehend aus Denitions-Objekten <strong>an</strong>gepasst. Die resultierende<br />

Struktur sowie die dadurch nötigen Än<strong>der</strong>ungen werden <strong>an</strong>schlieÿend im <strong>ein</strong>zelnen<br />

erläutert.<br />

249


KAPITEL 17. IMPLEMENTIERUNG<br />

Abbildung 17.11.: Klassendiagramm des OAI-Wrappers<br />

Der OAIWrapper greift im Gegensatz zu den <strong>an</strong><strong>der</strong>en Wrappern nicht auf <strong>ein</strong>e externe<br />

Suchquelle zurück, son<strong>der</strong>n führt die Suchfunktionen eigenständig auf <strong>ein</strong>er lokalen Datenb<strong>an</strong>k<br />

durch. Die Daten für die Suche werden dabei vom OAIHarvester (17.3.5) aus<br />

OAI Online-Repositories <strong>ein</strong>gesammelt und in das entsprechende lokale Datenformat konvertiert.<br />

Durch die lokale Datenhaltung ist <strong>ein</strong>e eziente Suche auch auf sehr groÿen Datenbeständen<br />

möglich, so dass <strong>der</strong> OAI-Wrapper das Potential hat, die Quelle mit den meisten und<br />

besten (Online-)Ergebnissen zu werden. Dies hängt all<strong>ein</strong> davon ab, welche Quellen <strong>der</strong><br />

lokalen Datenb<strong>an</strong>k hinzugefügt und somit dem Wrapper bek<strong>an</strong>nt gemacht werden.<br />

Än<strong>der</strong>ung und Ergänzungen zum Entwurf:<br />

• Die Klasse OAIWrapper verwendet das hinzugekommene Interface OAIDenition<br />

um, je nach OAI-Quelle, <strong>ein</strong>ige grundlegende Daten festzulegen und Denitionen<br />

(RepositoryURL, . . . ) zu erhalten.<br />

• Die Methode search() führt <strong>an</strong>h<strong>an</strong>d <strong>der</strong> Denition <strong>ein</strong>e Suche via hibernate in<br />

<strong>ein</strong>er per jndi referenzierten Datenb<strong>an</strong>k durch und liefert die entsprechenden Ergebnisse<br />

als SearchResultSet zurück.<br />

250


17.3. MEDIATOR / WRAPPER<br />

Abbildung 17.12.: Klassendiagramm des OAI-Harvester<br />

Der OAIHarvester war ursprünglich als <strong>ein</strong> externes Programm gepl<strong>an</strong>t, welches in regelmäÿigen<br />

Abständen die bek<strong>an</strong>nten OAI-Quellen überprüft und den lokalen Datenbest<strong>an</strong>d<br />

aktuell hält. Durch das von hibernate abhängige komplexe Datenschema erschien es allerdings<br />

sinnvoller, den Harvester direkt mit den <strong>an</strong><strong>der</strong>en EJBs zu integrieren, so dass auf<br />

<strong>ein</strong>e gem<strong>ein</strong>same Grundlage (Denitions, Hibernate-Objekte, . . . ) zurückgegrien werden<br />

konnte.<br />

Aufbau und Funktionsweise:<br />

• Die Klasse HarvesterBe<strong>an</strong> und <strong>der</strong>en entsprechendes RemoteInterface implementiert<br />

<strong>ein</strong>en OAI Harvester, <strong>der</strong> <strong>an</strong>h<strong>an</strong>d <strong>ein</strong>er OAIDefinition <strong>ein</strong>e An<strong>fr</strong>age <strong>an</strong> <strong>ein</strong><br />

online OAI-Repository stellt und <strong>ein</strong>en chunk XML-Datensätze via hibernate<br />

mit den entsprechend lokal vorgehaltenen Daten abgleicht bzw. neue Datensätze<br />

hinzufügt.<br />

• Die Methode update() nimmt <strong>ein</strong>e OAI-An<strong>fr</strong>age von <strong>ein</strong>em Remote-Client entgegen<br />

und führt diese mit Hilfe <strong>der</strong> Methode harvest() durch. Sollte diese An<strong>fr</strong>age <strong>an</strong> das<br />

OAi-Repository <strong>ein</strong> resumptionToken zurückliefern, (d.h. es existieren noch weitere<br />

Datensätze, die bisher nicht gesendet wurden) wird dieses Token <strong>an</strong> den au<strong>fr</strong>ufenden<br />

Client zurückgeliefert, <strong>der</strong> somit die Möglichkeit hat, die An<strong>fr</strong>age fortzusetzen.<br />

Die exakte Erläuterung des Ablaufes <strong>ein</strong>es OAI-Harvests würde <strong>an</strong> dieser Stelle den Rahmen<br />

sprengen. Hierzu sei auf die ausführliche Dokumentation <strong>der</strong> Open Archives Initiative<br />

verwiesen (http://www.openarchives.org).<br />

251


KAPITEL 17. IMPLEMENTIERUNG<br />

Abbildung 17.13.: Paket org.pgportal.ejb.wrapper.OAI (OAI-Objekte)<br />

• Die Klassen des Pakets org.pgportal.ejb.wrapper.OAI im Hibernate-Modul dienen<br />

all<strong>ein</strong> <strong>der</strong> persistenten Datenspeicherung via hibernate in <strong>ein</strong>er SQL-Datenb<strong>an</strong>k.<br />

17.4. Benutzerkonto<br />

Im Vergleich zum Entwurf wurde die Struktur <strong>der</strong> Java-Klassen und <strong>der</strong> Datenb<strong>an</strong>k aus<br />

verschiedenen Gründen geän<strong>der</strong>t. Im folgenden werden die Än<strong>der</strong>ungen detailliert erläutert.<br />

Alle Klassen liegen in dem Package org.pgportal.ejb.userAccount (siehe Abbildung<br />

17.14).<br />

252


17.4. BENUTZERKONTO<br />

Abbildung 17.14.: Klassendiagramm des Benutzerkontos<br />

• Klasse HibernateUtil wurde gelöscht, da die Struktur von Hibernate komplett umgebaut<br />

wurde. Die entsprechenden Funktionen <strong>der</strong> Klasse HibernateUtil wurden<br />

in die Methoden integriert, um damit auf die Datenb<strong>an</strong>k zuzugreifen.<br />

• Klasse UserAccountBe<strong>an</strong><br />

Um die Testumgebung <strong>an</strong>zupassen, wurde das Attribut UserID von int auf String<br />

geän<strong>der</strong>t.<br />

Die Methoden extendDoc(), reserveDoc() und deleteReservedDoc() wurden<br />

von <strong>der</strong> Implementierung ausgeschlossen, weil <strong>ein</strong> aktiver Zugri des Portals<br />

auf die Bibliotheksfunktionen, wie Verlängerung, Vormerkung und Löschen<br />

<strong>der</strong> Vormerkung <strong>der</strong> Dokumente, von Seiten des IBIT / BIS nicht gewünscht<br />

ist.<br />

Die Methode getDocList() wurde durch die Methode getUricaAccountInfo()<br />

ersetzt. Der Kontost<strong>an</strong>d des Benutzers, sowie die Übersicht <strong>der</strong> ausgeliehenen<br />

und vorgemerkten Dokumente werden dadurch von ORBIS geholt.<br />

Die Methode getUserSearchType() wurde zu getDefaultSO() umben<strong>an</strong>nt.<br />

Die liefert <strong>ein</strong> SearchObject zurück, welches die vom Benutzer vordenierten<br />

Such<strong>ein</strong>stellungen enthält.<br />

253


KAPITEL 17. IMPLEMENTIERUNG<br />

Die Methode getUserResources() wurde durch getWrapperList() ersetzt,<br />

die die vom Benutzer vordenierten Bibliotheken zur Suche zurückliefert. Die<br />

Methode setWrapperList() wurde auch <strong>ein</strong>gefügt, diese speichert die vom<br />

Benutzer geän<strong>der</strong>ten Bibliotheken in die Datenb<strong>an</strong>k.<br />

Einige Methoden wurden <strong>ein</strong>gefügt.<br />

∗ checkUserAccount() prüft, ob <strong>der</strong> Eintrag des Benutzers in <strong>der</strong> DB existiert.<br />

Wenn nicht, d<strong>an</strong>n wird <strong>ein</strong> Eintrag mit St<strong>an</strong>dard-Werten automatisch<br />

in die DB gespeichert.<br />

∗ checkUricaAccount() dient zur Prüfung, ob <strong>der</strong> Benutzer s<strong>ein</strong> ORBIS-<br />

Konto in <strong>der</strong> DB gespeichert hat. checkUricaAccountInfo() prüft, ob <strong>der</strong><br />

vom Benutzer <strong>ein</strong>gegebene Benutzername und s<strong>ein</strong> Passwort von ORBIS<br />

richtig ist.<br />

∗ checkWrapperList() vergleicht die in <strong>der</strong> DB gespeicherten Bibliotheken<br />

und die vom Portal <strong>an</strong>gebotenen Bibliotheken. Wenn die beide nicht stimmen,<br />

d<strong>an</strong>n werden die Bibliotheken in <strong>der</strong> DB aktualisiert.<br />

∗ resetSearchHistory() dient zur Rückstellung <strong>der</strong> Suchgeschichte, wenn<br />

<strong>der</strong> Benutzer die Anzahl <strong>der</strong> zu speichernden durchgeführten Suchen än<strong>der</strong>t.<br />

In den Methoden getWrapperList() und setWrapperList() wird direkt <strong>ein</strong><br />

Wrapper-Objekt (siehe Abbildung 17.15) erzeugt mit denen d<strong>an</strong>n weitergearbeitet<br />

wird. Ebenfalls in <strong>der</strong> Methode checkWrapperList() k<strong>an</strong>n gegeben falls<br />

<strong>ein</strong> Wrapper-Objekt erzeugt werden.<br />

Abbildung 17.15.: Paket org.pgportal.ejb.userAccount (Benutzerkonto-Objekte)<br />

• Klasse LocalUserAccount<br />

Das Local-Interface wurde nach <strong>der</strong> Än<strong>der</strong>ung <strong>der</strong> Klasse UserAccountBe<strong>an</strong> entsprechend<br />

<strong>an</strong>gepasst.<br />

• Klasse userAccountObject enthält die Attribute userID, libID, libPassword,<br />

resultQu<strong>an</strong>tity, historyQu<strong>an</strong>tity, saveLibData und entsprechende setter- und<br />

getter-Methoden. Die Attribute zu den Dokumenttypen existieren nicht mehr, weil<br />

die nicht von ORBIS und <strong>an</strong><strong>der</strong>en Bibliotheken unterstützt werden.<br />

254


17.5. BENUTZUNGSOBERFLÄCHE<br />

• Klasse Wrapper wurde <strong>ein</strong>gefügt. Sie enthält die Attribute id, userID, name und<br />

active. Die vom Benutzer gewählten Bibliotheken werden dadurch in <strong>der</strong> DB gespeichert<br />

o<strong>der</strong> aus <strong>der</strong> DB geholt.<br />

Für mehr Details über das Package org.pgportal.ejb.userAccount sei auf die entsprechenden<br />

Javadocs verwiesen.<br />

17.5. Benutzungsoberäche<br />

Abbildung 17.16 und Abbildung 17.17 zeigen die aktuelle Portlet- und Paketstruktur.<br />

Im Vergleich zur gepl<strong>an</strong>ten Struktur (siehe Abbildung 16.35) wurden <strong>ein</strong>ige JSP-Dateien<br />

umben<strong>an</strong>nt und neue hinzugefügt. Um die Seite graphisch aufzuwerten, wurden die lizenz<strong>fr</strong>eien<br />

Silk Icons von Mark James 2 integriert und alle bisherigen Graken durch diese<br />

ersetzt.<br />

Abbildung 17.16.: GUI: Portlet-Struktur<br />

2<br />

http://www.famfamfam.com/lab/icons/silk/ - Creative Commons Attribution 2.5 License<br />

255


KAPITEL 17. IMPLEMENTIERUNG<br />

Abbildung 17.17.: Pakete org.pgportal.portlet und org.pgportal.portlet.util<br />

Abbildung 17.18.: GUI: Vergleich <strong>der</strong> Gesamt<strong>an</strong>sicht, siehe Abb. 16.23<br />

Die bedeutendste Än<strong>der</strong>ung am Layout erfolgte durch die Einbindung des neuen <strong>Uni</strong>-<br />

Themes in Liferay. Alle weiteren Entwicklungen und Design wurden gezielt auf die neuen<br />

Farben und Schriften ausgerichtet. Folgende Abbildungen zeigen <strong>ein</strong>ige deutliche Unterschiede<br />

zwischen Entwurf und aktueller Umsetzung.<br />

256


17.5. BENUTZUNGSOBERFLÄCHE<br />

Abbildung 17.19.: GUI: Vergleich <strong>der</strong> Einfachen Suche<br />

Abbildung 17.20.: GUI: Vergleich <strong>der</strong> Ergebnis-Anzeige, siehe Abbildung 16.27<br />

257


KAPITEL 17. IMPLEMENTIERUNG<br />

Abbildung 17.21.: GUI: Vergleich <strong>der</strong> Detail<strong>an</strong>sicht <strong>ein</strong>es Ergebnisses, siehe Abbildung<br />

16.28<br />

258


17.5. BENUTZUNGSOBERFLÄCHE<br />

Abbildung 17.22.: GUI: Vergleich <strong>der</strong> Einstellungen<br />

259


KAPITEL 17. IMPLEMENTIERUNG<br />

Abbildung 17.23.: GUI: Vergleich <strong>der</strong> Dokumentenübersicht, siehe Abbildung 15.10<br />

Von den ursprünglich gepl<strong>an</strong>ten zusätzlichen Portlets Lesezeichen (siehe Abbildung<br />

15.13) o<strong>der</strong> Önungszeiten (siehe Abbildung 15.12) konnte aufgrund <strong>der</strong> knapp bemessenen<br />

Zeit k<strong>ein</strong>es mehr verwirklicht werden. Diese werden daher Best<strong>an</strong>dteil <strong>der</strong> Weiterentwicklung<br />

des <strong>Bibliotheksdienste</strong>s s<strong>ein</strong>. Dafür wurde das Suchportlet um <strong>ein</strong>e weitere<br />

Funktion erweitert. Dem Benutzer steht nun <strong>ein</strong>e Suchchronik zur Verfügung, in <strong>der</strong> s<strong>ein</strong>e<br />

letzten Suchen aufgelistet werden und durch <strong>ein</strong>en <strong>ein</strong>fachen Klick nochmal gestartet<br />

werden können.<br />

260


17.6. ERLÄUTERUNGEN ZUM TESTVERLAUF<br />

Abbildung 17.24.: GUI: Portlet Suchchronik<br />

Abbildung 17.25.: GUI: Ausschnitt aus <strong>der</strong> Hilfe<br />

17.6. Erläuterungen zum Testverlauf<br />

In dem Dokument Entwurf (siehe Kapitel 16) wurde <strong>ein</strong> Testpl<strong>an</strong> ausgearbeitet, <strong>der</strong> als<br />

richtungweisend für den den wahren Testverlauf gelten sollte.<br />

261


KAPITEL 17. IMPLEMENTIERUNG<br />

Zunächst muss hier verdeutlicht werden, dass dieser Testpl<strong>an</strong> von <strong>ein</strong>er eigenständigen<br />

Arbeitsphase ausging. Das bedeutet, dass die Entwicklung des Projekts zum gröÿten Teil<br />

zu diesem Zeitpunkt schon abgeschlossen s<strong>ein</strong> sollte, und die Testphase dazu dienen sollte<br />

Fehler zu erkennen, die bei <strong>der</strong> <strong>ein</strong>fachen Implementierung übersehen wurden.<br />

Jedoch wurde schnell ersichtlich, dass diese Pl<strong>an</strong>ung aus Zeitgründen nicht umzusetzen<br />

war. Daher entst<strong>an</strong>d <strong>der</strong> Beschluss, dass die Arbeitsphasen Implementierung und Testen'<br />

parallel durchgeführt werden müssen.<br />

Um dieses Prinzip verständlicher zu machen, wird nun <strong>ein</strong> typischer Arbeitsprozess kurz<br />

vorgestellt:<br />

• Entwicklung o<strong>der</strong> Verän<strong>der</strong>ung <strong>ein</strong>es Wrappers<br />

• Einbindung des Wrappers in das laufende System<br />

• Testen durch Ausführung von mehreren Such<strong>an</strong><strong>fr</strong>agen<br />

• Bei Fehlern wird <strong>der</strong> Prozess neugestartet<br />

• Bei fehler<strong>fr</strong>eier Funktion gilt dieser Wrapper zunächst als korrekt und <strong>der</strong> nächste<br />

Arbeitsabschnitt wird <strong>an</strong>geg<strong>an</strong>gen.<br />

Durch dieses Konzept wird nicht nur die selbständige Testphase gestrichen. Son<strong>der</strong>n es<br />

entfällt auch die Zusammenstellung <strong>ein</strong>er Arbeitsgruppe, die die Tests durchführt. Diese<br />

Arbeit wird jetzt durch den Entwickler, <strong>der</strong> das zu testende Objekt selbst erzeugt hat,<br />

vorgenommen. Als Folge konnte m<strong>an</strong> <strong>ein</strong> hohen Zeitgewinn verbuchen.<br />

Allerdings wurde aus dem alten Konzept noch die Gestaltung <strong>ein</strong>er Testumgebung ins<br />

neue Konzept übernommen. Mit dem Testserver und -client wurde erst <strong>ein</strong> ausführliche<br />

Überprüfung <strong>der</strong> entwickelten Software möglich.<br />

Auf den ersten Blick hätte sich das Testverhalten damit auf dem Schwerpunkt Integrationstest,<br />

was ursprünglich nur <strong>ein</strong> Teil des eigentlichen Testpl<strong>an</strong>s war, festgelegt. Da<br />

diese Art <strong>der</strong> Überprüfung nicht als ausreichend zu verstehen ist, wurde die Intensität des<br />

Kontrollverhaltens ausgebaut. Damit m<strong>ein</strong>t m<strong>an</strong>, dass jede kl<strong>ein</strong>ste Verän<strong>der</strong>ung, zum<br />

Beispiel die Überarbeitung <strong>ein</strong>er Funktion o<strong>der</strong> die Einführung <strong>ein</strong>es <strong>an</strong><strong>der</strong>en Datentyps,<br />

dazu führte, dass <strong>ein</strong>e neue Testreihe ausgeführt wurde, um das Verhalten des neu gestalteten<br />

Objekts zu überprüfen. Damit erklären sich auch die hohen Revisionszahlen im<br />

SVN-Repository, das für dieses Projekt zur Verbesserung des Teamm<strong>an</strong>agements <strong>an</strong>gelegt<br />

wurde. Teilweise wurde diese Art des Verfahrens so intensiv ausgeführt, dass nur die<br />

Umsetzung <strong>ein</strong>es Flags in <strong>der</strong> GUI-Struktur <strong>ein</strong>e Prüfung <strong>der</strong> Gesamtstruktur zu Folge<br />

hatte. Weiterhin entst<strong>an</strong>den für kurze Zeit zu Testzwecken selbständig Gruppen zwischen<br />

2-4 Personen, wenn es darum ging, bestimmte Komponenten auf ihre Zusammenarbeit zu<br />

testen. Diese Phasen <strong>der</strong> direkten Teamkommunikation erzeugten intensive und gezielte<br />

Untersuchungen <strong>der</strong> Problemfel<strong>der</strong>. Wie die Kommunikation zwischen Wrapper, Mediator,<br />

Such-Logik und GUI.<br />

Auf diese Art und Weise wurde <strong>ein</strong> Ver<strong>ein</strong>igung <strong>der</strong> verschiedenen Testverfahren erzielt:<br />

<strong>Uni</strong>t-Test, Integrationstest und Systemtest.<br />

Zudem wurden ebenfalls die statische Programm<strong>an</strong>alyse und <strong>der</strong> Installationstest berücksichtigt.<br />

Diese beiden Verfahren b<strong>ein</strong>halten die Überprüfung <strong>der</strong> Einhaltung <strong>der</strong> Spezikationen.<br />

Dadurch das die maÿgebenden Spezikationen von vornher<strong>ein</strong> befolgt wurden,<br />

262


17.6. ERLÄUTERUNGEN ZUM TESTVERLAUF<br />

k<strong>an</strong>n m<strong>an</strong> sich sicher s<strong>ein</strong>, dass <strong>der</strong>en Einhaltung besteht. Damit wurde den beiden Testabläufen<br />

zuvor gekommen. Somit erzielte m<strong>an</strong> den gleichen Erfolg als wären sie separat<br />

ausgeführt worden.<br />

Unter den gegebenen Voraussetzungen erreichte m<strong>an</strong> aufbauend auf dem beschriebenen<br />

Konzept den bestmöglichen Testablauf.<br />

263


18. H<strong>an</strong>dbuch<br />

18.1. Suche<br />

Den Kern dieser Anwendung stellt die Suche in verschiedenen Bibliothekskatologen dar.<br />

Für <strong>ein</strong>e schnelle und unkomplizierte Nutzung steht die Einfache Suche zur Verfügung.<br />

Um auch gezieltere Suchen vornehmen zu können, sollte auf die Erweiterte Suche zurückgegrien<br />

werden. Abgerundet wird die Suchfunktion durch <strong>ein</strong>e Such-Chronik. Sie<br />

ermöglicht <strong>ein</strong>e Archivierung <strong>der</strong> zuletzt getätigten Such-Aktionen, die auf diese Weise<br />

komfortabel und bequem nochmals <strong>ein</strong>gesehen und ausgeführt werden können.<br />

18.1.1. Einfache Suche<br />

Die Einfache Suche besteht aus lediglich <strong>ein</strong>em Eingabefeld, so dass <strong>ein</strong>er unkomplizierten<br />

Anwendung nichts im Wege steht. Ein in dieses Eingabefeld <strong>ein</strong>getragener Begri wird<br />

zugleich in allen Kategorien 1 (Autor, Title usw.) gesucht. Geben Sie als Beispiel das Wort<br />

Müller <strong>ein</strong>, nden Sie sowohl Dokumente von Autoren dieses Namens als auch Dokumente<br />

die vom Beruf des Müllers h<strong>an</strong>deln. Diese Art <strong>der</strong> Suche bietet sich insbeson<strong>der</strong>e<br />

d<strong>an</strong>n <strong>an</strong>, wenn Sie schnell <strong>an</strong> vielen Ergebnissen zu <strong>ein</strong>em Thema interessiert sind o<strong>der</strong><br />

sich <strong>ein</strong>fach nur <strong>an</strong> relev<strong>an</strong>te Begrie / Jahreszahlen erinnern, von denen Sie nicht genau<br />

wissen, ob sie im Titel o<strong>der</strong> im Inhalt vorkommen.<br />

Abbildung 18.1.: Einfache Suche, Eingabefeld <strong>der</strong> Suche<br />

Unterhalb des Eingabefeldes für die Suchbegrie bietet die Einfache Suche die Möglichkeit<br />

<strong>an</strong>, den Suchraum auf verschiedene Bibliothekskataloge <strong>ein</strong>zuschränken. So können<br />

Sie entwe<strong>der</strong> nur im Katalog <strong>der</strong> <strong>Uni</strong>versitätsbibliothek <strong>Oldenburg</strong> suchen (es genügt dazu<br />

den ORBIS-Katalog auszuwählen), die Suche auf sämtliche <strong>ein</strong>gebundenen Quellen<br />

zu erweitern (in diesem Fall bitte global auswählen) o<strong>der</strong> Sie nutzen die Möglichkeit<br />

auf <strong>ein</strong>em von Ihnen selbst festgelegten Suchraum zu suchen (in diesem Fall bitte benutzerdeniert<br />

auswählen). Den Suchraum können Sie im Benutzerkonto durch <strong>ein</strong>faches<br />

Auswählen <strong>der</strong> gewünschten Bibliotheken festlegen.<br />

1<br />

jhfhmjgf<br />

264


18.1. SUCHE<br />

Abbildung 18.2.: Einfache Suche, Denition des Suchraums<br />

Eine Einfache Suche k<strong>an</strong>n unter Umständen sehr viele Ergebnisse zurück liefern, da wie<br />

schon <strong>an</strong>gesprochen in allen Kategorien nach den <strong>ein</strong>gegebenen Begrien gesucht wird. In<br />

diesen Fällen sollten Sie Ihre Suche <strong>ein</strong>schränken, indem Sie entwe<strong>der</strong> mehrere Suchbegrie<br />

<strong>ein</strong>geben o<strong>der</strong> die Erweiterte Suche verwenden.<br />

18.1.2. Erweiterte Suche<br />

Mit Hilfe <strong>der</strong> Erweiterten Suche ist es möglich, dierenziert nach Begrien in bestimmten<br />

Kategorien zu suchen. Während bei <strong>der</strong> Einfachen Suche alle Dokumente als Ergebnisse<br />

ausgegeben werden, in denen sich das Suchwort in <strong>ein</strong>er <strong>der</strong> Kategorien bendet, liefert<br />

die Erweiterte Suche nur diejenigen Dokumente zurück, in denen <strong>der</strong> Suchbegri in <strong>der</strong><br />

<strong>an</strong>gegebenen Kategorie o<strong>der</strong> Bibliothek gefunden wurde. Auf diese Weise k<strong>an</strong>n z. B. g<strong>an</strong>z<br />

gezielt nach <strong>ein</strong>em Autor o<strong>der</strong> <strong>ein</strong>em Titel gesucht werden. Selbstverständlich können<br />

auch die Suchfel<strong>der</strong> kombiniert werden. Dazu reicht es aus, die gewünschten Fel<strong>der</strong> mit<br />

den entsprechenden Suchbegrien zu füllen und die Suche abzuschicken. Jedes Feld mit<br />

<strong>ein</strong>er Eingabe wird auch bei <strong>der</strong> Erweiterten Suche berücksichtigt.<br />

Abbildung 18.3.: Erweiterte Suche, verschiedene Kategorien: Titel, Autor und Schlagwort<br />

265


KAPITEL 18. HANDBUCH<br />

Zusätzlich wird es Ihnen ermöglicht, den Suchraum für die durchzuführende Suche selbst<br />

festzulegen. Durch <strong>ein</strong> <strong>ein</strong>faches Setzen <strong>ein</strong>es Häkchens neben denjenigen Bibliotheken, in<br />

denen Sie nach den Suchbegrien suchen wollen, legen Sie diesen Suchraum fest. Dabei<br />

sind selbstverständlich alle Kombinationsmöglichkeiten erlaubt.<br />

Abbildung 18.4.: Erweiterte Suche, Deniton des Suchraums<br />

Die Bil<strong>der</strong> neben den Bibliotheksnamen geben die Medientypen wie<strong>der</strong>, die dort zur Verfügung<br />

stehen.<br />

Abbildung 18.5.: Erweiterte Suche, ndbare Medientypen<br />

18.1.3. Such-Chronik<br />

Wenn Sie <strong>ein</strong>e Wie<strong>der</strong>holung <strong>ein</strong>er bereits gemachten Recherche durchführen wollen,<br />

können Sie mit Hilfe <strong>der</strong> Such-Chronik auf verg<strong>an</strong>gene Suchen zurückgreifen. Die Such-<br />

Chronik listet dazu die zuletzt durchgeführten Such<strong>an</strong><strong>fr</strong>agen mit Kennzeichnung durch<br />

Datum, Uhrzeit, Suchart und Suchbegri(en) in <strong>ein</strong>er chronologisch sortierten Tabelle auf.<br />

266


18.1. SUCHE<br />

Ein <strong>ein</strong>facher Klick auf <strong>ein</strong>en solchen Such<strong>ein</strong>trag bewirkt die nochmalige Ausführung <strong>der</strong><br />

gemachten Such<strong>an</strong><strong>fr</strong>age. Diese Funktion ist auch d<strong>an</strong>n sehr nützlich wenn m<strong>an</strong> <strong>ein</strong>fach nur<br />

mal gucken will, wonach m<strong>an</strong> zuletzt gesucht hat. Die Such-Chronik muss nicht geson<strong>der</strong>t<br />

aktiviert werden - sie wird automatisch mitgeführt. Lediglich die Anzahl <strong>der</strong> zu speichernden<br />

Such<strong>an</strong><strong>fr</strong>agen k<strong>an</strong>n festgelegt werden. Diese Festlegung ndet im Benutzerkonto<br />

statt.<br />

Abbildung 18.6.: Such-Chronik<br />

18.1.4. Ergebnis<strong>an</strong>zeige<br />

Die Ergebnis<strong>an</strong>zeige besteht aus zwei Teilen. Der erste Teil ermöglicht die Wahl des Sortierverfahrens<br />

und gibt <strong>ein</strong> paar Statistiken <strong>an</strong>. Das zweite Teilstück ist auch gleichzeitig<br />

das Herzstück, denn hier werden die Ergebnisse wie<strong>der</strong>gegeben.<br />

Im ersten Teil k<strong>an</strong>n m<strong>an</strong> rechts oben das Sortierverfahren auswählen. Somit wird es Ihnen<br />

ermöglicht, selbst zu bestimmen nach welchen Gesichtspunkten (Relev<strong>an</strong>z, Datum usw.)<br />

die Ergebnisliste sortiert werden soll.<br />

Die Statistiken geben für die in <strong>der</strong> Suche berücksichtigten Quellen, die im Suchraum<br />

bestimmt wurden, die Menge <strong>der</strong> dort gefundenen Medien wie<strong>der</strong>. Zusätzlich wird noch<br />

die Dauer <strong>der</strong> Suchab<strong>fr</strong>age im <strong>ein</strong>zelnen und im g<strong>an</strong>zen ersichtlich.<br />

Abbildung 18.7.: Ergebnis<strong>an</strong>zeige, Statistiken<br />

Von den Suchergebnissen werden zunächst nur die Titel und <strong>der</strong> Teil indem das Suchwort<br />

steht wie<strong>der</strong>geben. Auf diese Weise können viele Suchergebnisse übersichtlich dargestellt<br />

werden. Das Bild neben dem Titel gibt den Medientyp wie<strong>der</strong>, so dass direkt ersichtlich<br />

ist, um was für <strong>ein</strong>en Medentypen es sich bei dem gefundenen Dokument h<strong>an</strong>delt. Durch<br />

267


KAPITEL 18. HANDBUCH<br />

das Anklicken des Titels <strong>ein</strong>es Ergebnisses erhält m<strong>an</strong> zusätzliche Informationen über das<br />

gefundene Dokument.<br />

Abbildung 18.8.: Ergebnis<strong>an</strong>zeige, aufgeklapptes Ergebnis<br />

18.2. Benutzerkonto<br />

Das Benutzerkonto ermöglicht es dem Benutzer, bibliotheksdienstrelev<strong>an</strong>te Einstellungen<br />

zu koordinieren o<strong>der</strong> Informationen zu erhalten.<br />

18.2.1. Einstellungen<br />

In diesem Bereich können Einstellungen vorgenommen werden. Diese Einstellungen wirken<br />

sich direkt auf den Bibliotheksdienst aus, so dass Sie hiermit die Möglichkeit haben,<br />

die <strong>an</strong>gebotenen Funktionen ihren Wünschen entsprechend <strong>an</strong>zupassen. Die gemachten<br />

Kongurationen können selbstverständlich gespeichert werden, so dass vermieden wird,<br />

dass <strong>ein</strong>ige Dinge immer wie<strong>der</strong> erneut <strong>ein</strong>zustellen sind.<br />

Die Einstellungsmöglichkeiten beziehen sich hierbei auf den Suchraum, die Ergebnis<strong>an</strong>zeige<br />

und <strong>der</strong> Such-Chronik.<br />

Abbildung 18.9.: Benutzerkonto, Einstellungen<br />

Die Vorgaben für den Suchraum werden bei beiden Suchverfahren übernommen. Hierbei<br />

268


18.2. BENUTZERKONTO<br />

werden diese in <strong>der</strong> <strong>ein</strong>fachen Suche durch die Auswahl benutzerdeniert wie<strong>der</strong>gegeben.<br />

Weiterhin k<strong>an</strong>n m<strong>an</strong> die Anzahl <strong>der</strong> jeweils auf <strong>ein</strong>er Seite <strong>an</strong>gezeigten Suchergebnisse<br />

bestimmen.<br />

Zuletzt besteht noch die Möglichkeit die Zahl <strong>der</strong> innerhalb <strong>der</strong> Such-Chronik zu speichernden<br />

Suchen <strong>ein</strong>zustellen.<br />

18.2.2. Dokumentenübersicht<br />

In <strong>der</strong> Dokumentenübersicht werden die von Ihnen ausgeliehenen und vorgemerkten Dokumente<br />

<strong>an</strong>gezeigt. Sollten Mahngebühren <strong>an</strong>gefallen s<strong>ein</strong>, sind diese ebenfalls auf dieser<br />

Seite zu sehen. Die Dokumentenübersicht glie<strong>der</strong>t sich in die drei Bereiche Mahngebühren,<br />

ausgeliehene Dokumente und vorgemerkte Dokumente.<br />

Unter Mahngebühren nden Sie von Ihnen ausgeliehene Dokumente, <strong>der</strong>en Leih<strong>fr</strong>ist überschritten<br />

ist, so dass Gebühren fällig werden. Zu jedem Dokument wird das Rückgabedatum,<br />

<strong>der</strong> Titel und die Gebühren <strong>an</strong>gezeigt.<br />

Abbildung 18.10.: Benutzerkonto, Mahngebühren<br />

Darunter nden sich Ihre ausgeliehenen Dokumente, <strong>der</strong>en Leih<strong>fr</strong>isten noch nicht abgelaufen<br />

sind. Auch hier werden Rückgabedatum und <strong>der</strong> Titel <strong>an</strong>gegeben. Sollte die Möglichkeit<br />

zur Verlängerung <strong>der</strong> Leih<strong>fr</strong>ist bestehen, also k<strong>ein</strong> <strong>an</strong><strong>der</strong>er Benutzer das Dokument<br />

vorgemerkt haben und die maximale Anzahl <strong>an</strong> Verlängerungen nicht ausgeschöpft s<strong>ein</strong>,<br />

nden Sie nach dem Titel <strong>ein</strong>e Schaltäche mit <strong>der</strong> Beschriftung verlängern.<br />

Abbildung 18.11.: Benutzerkonto, selbst ausgeliehene Dokumente<br />

Im untersten Abschnitt sind Ihre Vormerkungen zu sehen. Es werden Daten <strong>der</strong> voraussichtlichen<br />

Verfügbarkeit, <strong>der</strong> Titel des Dokuments und <strong>ein</strong>e Schaltäche zum Löschen<br />

<strong>der</strong> Vormerkung <strong>an</strong>gezeigt.<br />

269


KAPITEL 18. HANDBUCH<br />

Abbildung 18.12.: Benutzerkonto, eigene Vormerkungen<br />

18.2.3. Persönliche Daten<br />

Auf dieser Seite werden Ihre persönlichen Daten <strong>an</strong>gezeigt, die im Liferay-Portal hinterlegt<br />

sind. Da diese Angaben nur <strong>ein</strong>mal für das gesamte Portal gespeichert werden, sind<br />

Än<strong>der</strong>ungen nur in Portalaccount möglich, den Sie per Klick auf den Link unterhalb ihrer<br />

Daten erreichen.<br />

18.3. Navigation<br />

Abbildung 18.13.: Benutzerkonto, persönliche Daten<br />

Es gibt zwei Navigationsarten. Einmal als eigener Bereich (Portlet), <strong>der</strong> für die Hauptfunktionen<br />

zu ständig ist. Und d<strong>an</strong>n noch die Reiter innerhalb den <strong>an</strong><strong>der</strong>en Bereichen<br />

(Suche usw.).<br />

18.3.1. Hauptnavigation<br />

Über die Hauptnavigation erreicht m<strong>an</strong> die Bereiche Suche, Benutzerkonto und Hilfe.<br />

270


18.3. NAVIGATION<br />

Abbildung 18.14.: Navigation, Ausg<strong>an</strong>gszust<strong>an</strong>d<br />

Wenn m<strong>an</strong> <strong>ein</strong>er dieser Seiten aufgerufen hat und <strong>an</strong>schlieÿend wechseln will, muss m<strong>an</strong><br />

in <strong>der</strong> Hauptnavigation auf Bibliothek klicken, um <strong>ein</strong>e <strong>an</strong><strong>der</strong>e Seite au<strong>fr</strong>ufen zu können.<br />

Abbildung 18.15.: Navigation, Zust<strong>an</strong>d nach Wahl <strong>ein</strong>er Hauptseite<br />

18.3.2. Navigation innerhalb <strong>der</strong> Seiten<br />

Um auf die verschiedenen Funktionen <strong>der</strong> <strong>ein</strong>zelnen Seiten wechseln zu können, muss m<strong>an</strong><br />

die Reiter bedienen die oben in den Seiten <strong>an</strong>gezeigt werden.<br />

Abbildung 18.16.: Reiter innerhalb <strong>der</strong> Seiten<br />

271


19. Zusammenfassung und<br />

Bewertung<br />

Der folgende Abschnitt nimmt <strong>ein</strong>en Rückblick auf den Verlauf des Projekts auf mehreren<br />

Ebenen vor. Angef<strong>an</strong>gen mit <strong>ein</strong>er kurzen Zusammenfassung <strong>der</strong> wichtigsten Arbeitsschritte<br />

und Ergebnisse des abgelaufenden Jahres, schlieÿt sich dem <strong>ein</strong>e detaillierte<br />

Darstellung <strong>der</strong> in den <strong>ein</strong>zelnen Projektphasen gemachten Erfahrungen <strong>an</strong>. Abgerundet<br />

wird <strong>der</strong> Abschnitt durch <strong>ein</strong>e Bewertung des Projekts auf <strong>der</strong> <strong>ein</strong>en Seite und des<br />

entwickelten <strong>Bibliotheksdienste</strong>s auf <strong>der</strong> <strong>an</strong><strong>der</strong>en.<br />

19.1. Zusammenfassung<br />

Die Projektgruppenarbeit glie<strong>der</strong>te sich in verschiedene Phasen. Der Einstieg in die Thematik<br />

wurde durch unsere Betreuer gegeben, die uns das entstehende Portal vorstellten.<br />

In <strong>der</strong> Seminarphase wurden Vorträge mit Bezug zu Portalsystemen, Projektarbeit, digitale<br />

Bibliotheken und Metadaten gehalten, um <strong>ein</strong>en Einblick in die für unsere Aufgabe<br />

relev<strong>an</strong>te Themen zu bekommen und so das Umfeld kennenzulernen, in das unser Projekt<br />

<strong>ein</strong>gebettet ist.<br />

Im Anschluss dar<strong>an</strong> beg<strong>an</strong>n die konkrete Beschäftigung mit Onlineauftritten von Bibliotheken.<br />

Es wurde <strong>ein</strong> Kriterienkatalog erarbeitet, mit dessen Hilfe Angebote verschiedener<br />

Bibliothekswebseiten bewertet wurden. Aus den Ergebnissen entst<strong>an</strong>d <strong>ein</strong> erstes Sollkonzept<br />

für unser Portlet. Dieses bildete die Grundlage für die Anfor<strong>der</strong>ungsdenition.<br />

Da Gruppenarbeit mit 12 Teilnehmern kaum ezient möglich ist, wurden Untergruppen<br />

von 3 4 Leuten gebildet, die jeweils mit <strong>ein</strong>er Teilaufgabe (GUI, Benutzerkonto,<br />

Suchlogik und Mediator/Wrapper) beauftragt wurden. Die regelmäÿigen Treen <strong>der</strong> Gesamtgruppe<br />

dienten hauptsächlich dazu, den <strong>an</strong><strong>der</strong>en Untergruppen die Fortschritte und<br />

/ o<strong>der</strong> Probleme <strong>der</strong> eigenen Arbeit zu berichten, neue Aufgaben zu verteilen o<strong>der</strong> Entscheidungen<br />

zu treen, die die gesamte Gruppe betrafen.<br />

Ein erster Prototyp wurde erstellt, <strong>der</strong> das Zusammenspiel aller beteiligten Schichten demonstrierte<br />

und <strong>ein</strong>en Eindruck von <strong>der</strong> zu realisierenden Klassenstruktur gab. Es folgte<br />

das Entwurfsdokument, dessen Fertigstellung sich trotz aller guten Vorsätze doch etwas in<br />

die Länge zog. Also beg<strong>an</strong>n die Implementierungsphase auch später als es im wohlweislich<br />

nie aufgeschriebenen Projektzeitpl<strong>an</strong> vorgesehen war. Doch wie immer wird unter Termindruck<br />

am eektivsten gearbeitet und so ist das <strong>Uni</strong>-Portal jetzt um <strong>ein</strong> Bibliotheksportlet<br />

reicher.<br />

Die Arbeit <strong>der</strong> PG war natürlich nicht nur ergebnis-, son<strong>der</strong>n auch stark prozeÿorientiert,<br />

da es sich um <strong>ein</strong>e Lehrver<strong>an</strong>staltung h<strong>an</strong>delte. Alle Beteiligten hatten schon Erfahrung in<br />

Softwareentwicklung im Team mindestens durch das Softwareprojekt im Grundstudium.<br />

So gel<strong>an</strong>g die Einigung auf <strong>ein</strong>e gem<strong>ein</strong>same Basis relativ schnell. Es wurden Ver<strong>an</strong>twortliche<br />

für die Webseite, die Dokumentensammlung, die Projektleitung usw. gefunden.<br />

272


19.2. ERFAHRUNGSBERICHTE<br />

Bei den Entwicklungswerkzeugen wurde jedem weitestgehend selbst überlassen, was verwendet<br />

werden sollte. Nur beim Erstellen von Graken aller Art, z.B. Klassendiagramme,<br />

wurde sich aus Gründen <strong>der</strong> Einheitlichkeit auf das Eclipse-UML-Plugin von Omondo<br />

ge<strong>ein</strong>igt. Unverzichtbar für die gem<strong>ein</strong>same Entwicklung von Software ist die Versionskontrolle,<br />

in unserem Fall durch svn. Die <strong>ein</strong>gerichte Webseite diente in <strong>der</strong> Anf<strong>an</strong>gszeit<br />

dem Austausch durch das Forum und <strong>der</strong> Dokumentensammlung. Es wurde <strong>ein</strong> zentraler<br />

Testserver <strong>ein</strong>gerichtet, da aufgrund <strong>der</strong> Komplexität <strong>der</strong> Anwendung lokal entwickelter<br />

Code nicht immer portabel war. Da die Implementierungsphase zwar die intensivste, aber<br />

auch die kürzeste war, blieb hier kaum Zeit für Werkzeuge über die Nötigsten hinaus. Am<br />

Ende ist <strong>ein</strong> Bibliotheksdienst zu bestaunen, <strong>der</strong> nicht nur die regionalen Bibliotheken<br />

<strong>ein</strong>bindet, son<strong>der</strong>n auch Online-Ressourcen zugänglich macht (und sogar den Best<strong>an</strong>d <strong>der</strong><br />

Library of Congress in Washington durchforstet).<br />

Beim Gestalten <strong>der</strong> Projektpl<strong>an</strong>ung herrschte kreative Freiheit. Deadlines wurden meist<br />

erst mit wachsendem Termindruck gesetzt und <strong>ein</strong>gehalten aber <strong>der</strong> Erfolg gab uns<br />

Recht. Gruppenarbeit erfor<strong>der</strong>t <strong>ein</strong> hohes Maÿ <strong>an</strong> Zuverlässigkeit, Absprache, Toler<strong>an</strong>z,<br />

Geduld und diversen <strong>an</strong><strong>der</strong>en Soft-Skills. Nicht nur das termingerechte Erbringen von<br />

Leistungen, son<strong>der</strong>n auch das Respektieren <strong>an</strong><strong>der</strong>er Arbeitsweisen, das Akzeptieren von<br />

Misserfolgen, das Nicht-Einmischen in <strong>an</strong><strong>der</strong>e Arbeitsbereiche, das Annehmen und Üben<br />

von konstruktiver Kritik, das Aushalten nicht immer optimaler gruppendynamischer Prozesse<br />

und vieles <strong>an</strong><strong>der</strong>e mehr erfor<strong>der</strong>n Selbstdisziplin und Einschränkung des Egos jedes<br />

<strong>ein</strong>zelnen. Dieses zu Üben und <strong>an</strong> unserer Teamfähigkeit zu arbeiten, gab uns das verg<strong>an</strong>gene<br />

Jahr viele Möglichkeiten. Das Arbeitsklima in <strong>der</strong> Gruppe war je<strong>der</strong>zeit positiv.<br />

Fussballturnier, Kaee und Kuchen sorgten für Gem<strong>ein</strong>schaft über die Projektarbeit hinaus<br />

(siehe Anh<strong>an</strong>g B).<br />

19.2. Erfahrungsberichte<br />

In diesem Abschnitt werden gemachte Erfahrungen aus den <strong>ein</strong>zelnen Phasen des Projekts<br />

dargelegt.<br />

19.2.1. Vorbereitungsphase<br />

Als sich zu Beginn des Sommersemesters 2005 zwölf Studenten und Studentinnen zum ersten<br />

Treen <strong>der</strong> Projektgruppe mit dem Titel Ein <strong>Studierendenportal</strong> für die <strong>Uni</strong> <strong>Oldenburg</strong><br />

zusammenf<strong>an</strong>den, wusste wohl noch k<strong>ein</strong>er <strong>der</strong> Teilnehmer, was auf ihn zukommen<br />

würde. Somit wurde diese erste Sitzung für org<strong>an</strong>isatorische Dinge genutzt, wie das gegenseitige<br />

Vorstellen o<strong>der</strong> die allgem<strong>ein</strong>e Klärung von Sinn und Zweck <strong>ein</strong>er Projektgruppe.<br />

Am wichtigsten für den Anf<strong>an</strong>g war jedoch <strong>ein</strong>e ungefähre Abgrenzung des Themas und<br />

<strong>der</strong> Anfor<strong>der</strong>ungen, die sich hinter diesem verheiÿungsvollen Titel verbargen. Schnell wurde<br />

klar, dass es nicht darum ging, <strong>ein</strong> komplettes <strong>Studierendenportal</strong> zu entwickeln, wie<br />

m<strong>an</strong> es vielleicht aus dem Titel entnehmen konnte. Vielmehr sollte <strong>der</strong> Fokus auf <strong>der</strong><br />

Entwicklung und Integration von <strong>ein</strong>zelnen Komponenten in <strong>ein</strong> solches Portal liegen, das<br />

<strong>an</strong> <strong>an</strong><strong>der</strong>er Stelle im Rahmen des i 3 -sic-Projektes konzipiert wurde. Bei den zu entwickelnden<br />

Komponenten sollte es sich um <strong>Bibliotheksdienste</strong> h<strong>an</strong>deln. Weitere thematische<br />

Einschränkungen wurden zunächst nicht gemacht, so dass die Klärung <strong>der</strong> Anfor<strong>der</strong>ungen<br />

<strong>an</strong> die zu entwickelnden Dienste zum Best<strong>an</strong>dteil des Projektauftrags wurde.<br />

273


KAPITEL 19. ZUSAMMENFASSUNG UND BEWERTUNG<br />

19.2.2. Seminarphase<br />

Nach diesen ersten Gesprächen zur Vorstellung des Projekts wurden auch <strong>ein</strong>ige technische<br />

Vorgaben <strong>an</strong>gesprochen, wie die Umsetzung <strong>der</strong> Dienste in Portlets, die Integration<br />

<strong>der</strong> Portlets in das Liferay-System o<strong>der</strong> die Implementierung in Java. K<strong>ein</strong>er <strong>der</strong> zwölf<br />

Teilnehmer hatte zu diesem Zeitpunkt Erfahrungen mit <strong>der</strong> Portlet-Technologie o<strong>der</strong> <strong>der</strong><br />

Liferay-Portalsoftware, so dass sich je<strong>der</strong> im Verlauf des Projekts auf Neul<strong>an</strong>d begeben<br />

musste. So trocken die übergeordnete Thematik um <strong>Bibliotheksdienste</strong> auch für den <strong>ein</strong><br />

o<strong>der</strong> <strong>an</strong><strong>der</strong>en geklungen haben mag, nach <strong>der</strong> Klärung <strong>der</strong> <strong>ein</strong>zusetzenden Technologien<br />

war das Interesse allerseits geweckt.<br />

Zum Kennen lernen dieser neuen Technologien wurde <strong>ein</strong>e Seminarphase abgehalten, in<br />

<strong>der</strong> sich je<strong>der</strong> <strong>der</strong> Teilnehmer in <strong>ein</strong> projektrelev<strong>an</strong>tes Thema <strong>ein</strong>arbeiten sollte. Die Themen<br />

lieÿen sich grob in fünf Bereiche klassizieren. Im ersten Bereich st<strong>an</strong>d die Klärung<br />

des Begris Web-Projekt sowie die Pl<strong>an</strong>ung solcher Projekte im Vor<strong>der</strong>grund. Dar<strong>an</strong><br />

schlossen sich Themen des Software Engineering <strong>an</strong>, die sich mit Architekturdesign und<br />

Fragestellungen des Entwurfs und <strong>der</strong> Implementierungsphase aus<strong>ein</strong><strong>an</strong><strong>der</strong> setzten. Eine<br />

Einführung in Portlets und Portale schlug d<strong>an</strong>n die Brücke zum Portlet-St<strong>an</strong>dard und<br />

zur Portal-Plattform Liferay. Der vierte Block nahm sich <strong>der</strong> Aufgaben und Formen von<br />

digitalen Bibliotheken <strong>an</strong> und <strong>der</strong> letzte Block beschäftigte sich schlieÿlich mit Metadaten<br />

und Metadatenst<strong>an</strong>dards (siehe Teil I). Die jeweiligen Ergebnisse galt es aufbereitet und<br />

mittels <strong>ein</strong>er 15-minütigen Präsentation den <strong>an</strong><strong>der</strong>en Gruppenmitglie<strong>der</strong>n vorzustellen.<br />

Auf diese Weise f<strong>an</strong>d arbeitsteilig <strong>ein</strong>e schnelle Einarbeitung in relev<strong>an</strong>te Themen st<strong>an</strong>d<br />

genauso wie sich für jedes Thema <strong>ein</strong> Experte im Sinne <strong>ein</strong>es Ansprechpartners herauskristallisierte.<br />

Positiv <strong>an</strong> dieser Phase war auch, dass noch mal je<strong>der</strong> <strong>ein</strong>zelne üben konnte,<br />

wie m<strong>an</strong> aus minimalen Literaturvorgaben die für das Projekt wichtigen Zusammenhänge<br />

heraus arbeitet und so präsentiert, dass die Zuhörer die wesentlichen Dinge begreifen und<br />

sich ggf. vertiefend dafür interessieren.<br />

19.2.3. Erstellung des Kriterienkatalogs<br />

Parallel zur Seminarphase f<strong>an</strong>den erste Überlegungen hinsichtlich möglicher Anfor<strong>der</strong>ungen<br />

<strong>an</strong> <strong>Bibliotheksdienste</strong> statt. Auf <strong>der</strong> Basis von Recherchen und Begutachtungen <strong>an</strong><strong>der</strong>er<br />

Bibliotheks<strong>an</strong>gebote im Web entst<strong>an</strong>d so <strong>ein</strong> Kriterienkatalog, <strong>der</strong> <strong>ein</strong>e thematisch<br />

sinnvoll geordnete und nach Relev<strong>an</strong>z gewichtete Sammlung von Merkmalen enthielt. Anh<strong>an</strong>d<br />

dieses Kriterienkatalogs wurden <strong>ein</strong>ige <strong>Bibliotheksdienste</strong> exemplarisch bewertet, so<br />

dass sich für jeden Themenschwerpunkt <strong>ein</strong> Referenzsystem ergab (siehe Kapitel 14). Die<br />

Erstellung des Kriterienkatalogs und die Arbeit damit sorgten dafür, dass sich je<strong>der</strong> in <strong>der</strong><br />

Gruppe mit verschiedenen bestehenden Diensten aus<strong>ein</strong><strong>an</strong><strong>der</strong>setzte und durch die Fragen<br />

nach Was ist gut? und Was könnte besser s<strong>ein</strong>? <strong>ein</strong>e konkretere Vorstellung davon bekam,<br />

wie <strong>ein</strong> zukünftiges System aussehen könnte. Den meisten in <strong>der</strong> Gruppe kam diese<br />

Phase zunächst als zu l<strong>an</strong>g o<strong>der</strong> zu unbedeutend vor. Doch im Nachhin<strong>ein</strong> hat die Arbeit<br />

mit dem Kriterienkatalog die <strong>ein</strong>zelnen Teilnehmer sehr für die Güte von <strong>Bibliotheksdienste</strong>n<br />

sensibilisiert. Erst so konnten viele Stärken, aber auch Schwachpunkte, <strong>an</strong><strong>der</strong>er<br />

<strong>Bibliotheksdienste</strong> ausgemacht werden und in die eigenen Überlegungen <strong>ein</strong>ieÿen.<br />

274


19.2. ERFAHRUNGSBERICHTE<br />

19.2.4. Anfor<strong>der</strong>ungsdenition<br />

Der Überg<strong>an</strong>g von <strong>der</strong> Auswertung des Kriterienkatalogs zur Denition von Anfor<strong>der</strong>ungen<br />

<strong>an</strong> das zu entwickelnde Websystem verlief ieÿend. Die Ergebnisse des Katalogs ossen<br />

direkt in die Überlegungen zu den eigenen Diensten hin<strong>ein</strong>. Insbeson<strong>der</strong>e <strong>der</strong> bisl<strong>an</strong>g<br />

genutzte Web-Auftritt des ORBIS-Systems wurde begutachtet, da <strong>ein</strong>e Integration des<br />

ORBIS-Systems in unseren Bibliotheksdienst die elementare Aufgabe des Projekts darstellte.<br />

Die Analyse <strong>der</strong> entsprechenden Bewertungen des Kriterienkatalogs hat zahlreiche<br />

Schwachstellen aufgezeigt, die es nun unsererseits zu beheben galt.<br />

Zentraler Best<strong>an</strong>dteil <strong>der</strong> Anfor<strong>der</strong>ungsdenition waren die Anwendungsfälle, die <strong>der</strong> zu<br />

entwickelnde Bibliotheksdienst möglich machen sollte. Oft war die Versuchung groÿ, schon<br />

viele Dinge im Detail zu pl<strong>an</strong>en. Aber gerade <strong>ein</strong> hohes Maÿ <strong>an</strong> Unsicherheit, was überhaupt<br />

technisch möglich sei, lieÿen exaktere Denitionen <strong>der</strong> Anfor<strong>der</strong>ungen nicht zu. K<strong>ein</strong>er<br />

konnte zu diesem Zeitpunkt sagen, welche Funktionen über die ORBIS-Schnittstelle<br />

möglich wären geschweige denn über die Schnittstellen <strong>an</strong><strong>der</strong>er zu integrieren<strong>der</strong> <strong>Bibliotheksdienste</strong>.<br />

Je mehr Bibliotheken m<strong>an</strong> integrieren möchte, desto geringer wird <strong>der</strong><br />

Funktionskonsens, <strong>der</strong> sicher über alle Dienste <strong>an</strong>geboten werden könnte. Allerdings sollte<br />

<strong>ein</strong>e Nutzung möglichst vieler Funktionen von ORBIS ermöglicht werden.<br />

Mit diesen Vorbedingungen im Hinterkopf wurden die Anwendungsfälle möglichst genau<br />

speziziert. Die Summe aller Funktionen, die aus diesen Anwendungsfällen resultierten,<br />

bildeten die Denition <strong>der</strong> funktionalen Anfor<strong>der</strong>ungen <strong>an</strong> das zu erstellende System. Als<br />

weitere Best<strong>an</strong>dteile <strong>der</strong> Anfor<strong>der</strong>ungsdenition wurden die nichtfunktionalen Anfor<strong>der</strong>ungen,<br />

<strong>der</strong> System<strong>ein</strong>satz und die Zielumgebung, die Benutzungsoberäche, das Verhalten<br />

im Fehlerfall, die Anfor<strong>der</strong>ungen <strong>an</strong> die Dokumentation und die Akzept<strong>an</strong>zkriterien<br />

speziziert (siehe Kapitel 15).<br />

Vergleicht m<strong>an</strong> nun im Nachhin<strong>ein</strong> die Anfor<strong>der</strong>ungsdenition mit dem fertigen Produkt,<br />

so lässt sich erkennen, dass die meisten <strong>der</strong> <strong>an</strong>gestrebten Funktionalitäten vom entwickelten<br />

System in vollem Umf<strong>an</strong>g o<strong>der</strong> zumindest zu groÿen Teilen erfüllt werden. Es konnten<br />

allerdings nicht alle erstellten Anwendungsfälle integriert werden, da die uns zugänglichen<br />

Schnittstellen dieses nicht erlaubten. An dieser Stelle wäre es wichtig gewesen, dass die<br />

Gruppe sich vor dieser Phase des Projekts <strong>ein</strong>gängig über das ORBIS-System und s<strong>ein</strong>e<br />

Schnittstelle informiert hätte bzw. informiert worden wäre. Hier ist <strong>ein</strong>iges versäumt<br />

worden.<br />

Die Schreiben <strong>der</strong> <strong>ein</strong>zelnen Kapitel und Punkte <strong>der</strong> Anfor<strong>der</strong>ungsdenition wurde <strong>ein</strong>zelnen<br />

Gruppenmitglie<strong>der</strong>n zugewiesen, was zur Folge hatte, dass z. B. die Denition von<br />

Anwendungsfällen und <strong>der</strong>en genauere Funktionen von <strong>ein</strong>er Person übernommen wurde.<br />

Dieses M<strong>an</strong>ko wurde aber dadurch ausgeglichen, dass die verschiedenen Punkte in den<br />

Sitzungen mit allen diskutiert wurden und das Dokument von Sitzung zu Sitzung gereift<br />

ist.<br />

19.2.5. Entwurf<br />

Die nächste Projektphase hatte den Entwurf <strong>der</strong> zu entwickelnden <strong>Bibliotheksdienste</strong><br />

auf <strong>der</strong> Basis <strong>der</strong> denierten Anfor<strong>der</strong>ungen zum Thema. Hauptaufgaben dieser Phase<br />

sind das Erstellen <strong>ein</strong>er System- und Softwarearchitektur, die die <strong>an</strong>fallenden Aufgaben<br />

bestmöglich zu lösen im St<strong>an</strong>de ist, und das Finden von Technologien und Modellen, die<br />

für jede Architekturschicht am adäquatesten ersch<strong>ein</strong>t.<br />

275


KAPITEL 19. ZUSAMMENFASSUNG UND BEWERTUNG<br />

Die Thematik, die <strong>ein</strong>zusetzenden Technologien und die Systemumgebung selbst das<br />

Liferay-Portal waren für alle Teilnehmer <strong>der</strong> Projektgruppe im hohen Umf<strong>an</strong>g neu, so<br />

dass diese Entwurfsphase mit zahlreichen Tests <strong>ein</strong>her ging. Viele Ideen und Ansätze <br />

<strong>an</strong>gef<strong>an</strong>gen von elementaren Entscheidungen hinsichtlich <strong>der</strong> Architektur bis hin zu <strong>ein</strong>fachen<br />

Fragen über die Möglichkeiten <strong>der</strong> Kommunikation zwischen Portlets galt es zunächst<br />

konkret auszuprobieren, bevor <strong>ein</strong> Beschluss über die Umsetzbarkeit gemacht werden<br />

konnte. So wurden innerhalb dieser Phase immer wie<strong>der</strong> kl<strong>ein</strong>ere Proof-Of-Concepts<br />

entwickelt, die fundierte Rückschlüsse über <strong>ein</strong>zelne Verfahren und Technologien erlaubten.<br />

Genauso wurde <strong>ein</strong> vollständiger Prototyp implementiert, <strong>der</strong> alle vorgesehenen Architekturschichten<br />

berücksichtigte, und somit das erfolgreiche Zusammenspiel verschiedener<br />

Ansätze demonstrieren konnte. Auf diese Weise wuchs mit <strong>der</strong> Zeit <strong>ein</strong>e immer komplexere<br />

Architektur her<strong>an</strong>, für die in den <strong>ein</strong>zelnen Schichten die Komponenten und Technologien<br />

festgelegt werden konnten.<br />

Das Entwurfsdokument selbst beginnt nach <strong>ein</strong>er kurzen Einleitung mit <strong>ein</strong>er detaillierten<br />

Beschreibung <strong>der</strong> entwickelten Architektur. Dar<strong>an</strong> <strong>an</strong>schlieÿend folgt <strong>der</strong> Entwurf <strong>der</strong><br />

<strong>ein</strong>zelnen Schichten und Bereiche Suchlogik, Mediator / Wrapper, Benutzerkonto und<br />

Benutzungsoberäche <strong>der</strong> jeweils konkret auf berücksichtigte Technologien und Modelle<br />

<strong>ein</strong>geht und <strong>ein</strong>e Beschreibung <strong>der</strong> Klassen und Dynamik vornimmt. Der Entwurf endet<br />

mit <strong>ein</strong>igen Erläuterungen zur Datenb<strong>an</strong>kmodellierung und <strong>ein</strong>er Festlegung des Testablaufs<br />

(siehe Kapitel 16).<br />

Zur Bearbeitung dieser <strong>ein</strong>zelnen Schichten und Bereiche wurden vier Untergruppen gebildet,<br />

die zwischen zwei und vier Personen stark waren. Diese Gruppen sollten bis zum<br />

Ende des Projekts für alle noch <strong>an</strong>stehenden Projektphasen bestehen bleiben. Das hat den<br />

klaren Vorteil, dass sich nicht je<strong>der</strong> um alles kümmern und alles wissen muss. Vielmehr<br />

k<strong>an</strong>n je<strong>der</strong> s<strong>ein</strong> bisher im Studium erworbenes Wissen gewinnbringend in <strong>ein</strong>em speziellen<br />

Bereich <strong>ein</strong>bringen und zusätzlich von den <strong>an</strong><strong>der</strong>en lernen. Die Gruppen entst<strong>an</strong>den nach<br />

persönlichen Präferenzen und Fähigkeiten. Auf diese Weise kam es zu sehr ausgeglichenen<br />

Gruppen und programmierschwächere konnten von besseren Programmierern aufgef<strong>an</strong>gen<br />

werden und zudem von ihnen lernen.<br />

Die Entwurfsphase war die längste Phase des Projekts. Immer wie<strong>der</strong> wurden Deadlines<br />

nicht <strong>ein</strong>gehalten o<strong>der</strong> nach hinten verschoben. Das ist sicherlich damit zu begründen, dass<br />

es nicht <strong>ein</strong>fach ist, in <strong>ein</strong>em Team von zwölf Leuten eektiv zu arbeiten beson<strong>der</strong>s<br />

d<strong>an</strong>n nicht, wenn je<strong>der</strong> zu <strong>an</strong><strong>der</strong>en Tageszeiten zur Verfügung steht und die Arbeitszeit<br />

durch Klausuren, Übungen, Nebenjobs o<strong>der</strong> <strong>an</strong><strong>der</strong>e Verpichtungen reduziert wird. Diese<br />

üblichen Probleme <strong>der</strong> Gruppendynamik sind aber durchaus nicht all<strong>ein</strong>e als Ursache<br />

dafür <strong>an</strong>zusehen. Dazu kommt die sehr hohe Komplexität <strong>der</strong> <strong>ein</strong>zelnen Aufgaben sowie<br />

des Projekts <strong>an</strong> sich. Es gab viele neue Technologien und St<strong>an</strong>dards, die es zu erlernen<br />

und <strong>ein</strong>zusetzen galt und genauso viele zu berücksichtigende Schnittstellen sowohl nach<br />

auÿen hin zu den <strong>ein</strong>zelnen <strong>Bibliotheksdienste</strong>n, als auch intern zwischen den Schichten<br />

<strong>der</strong> Architektur.<br />

Trotz aller Schwierigkeiten während <strong>der</strong> Entwurfsphase ist das Ergebnis das Entwurfsdokument<br />

auf <strong>der</strong> <strong>ein</strong>en Seite und <strong>der</strong> Prototyp auf <strong>der</strong> <strong>an</strong><strong>der</strong>en Seite sehr detailliert<br />

ausgefallen und damit <strong>ein</strong> groÿer Schritt zur <strong>an</strong>schlieÿenden Phase des Projekts gewesen<br />

<strong>der</strong> Implementierung <strong>der</strong> <strong>Bibliotheksdienste</strong>.<br />

276


19.3. BEWERTUNG UND AUSBLICK<br />

19.2.6. Implementierung<br />

Bedingt durch die sehr l<strong>an</strong>ge Entwurfsphase blieb für die tatsächliche Implementierung<br />

<strong>der</strong> entworfenen Funktionalitäten weit weniger Zeit als vorgesehen. Verglichen mit den<br />

vorhergehenden Phasen gehörte sie zu den kürzesten. Aber es zeigte sich, dass unsere<br />

Gruppe unter Zeitdruck am besten arbeiten k<strong>an</strong>n. Eingeläutet wurde die heiÿe Implementierungsphase<br />

mit <strong>der</strong> Durchführung <strong>ein</strong>es so gen<strong>an</strong>nten Code-Camps. Davor verliefen<br />

die Implementierungen eher ver<strong>ein</strong>zelt und unkoordiniert. Doch mit zunehmenden Termindruck<br />

wuchs die Einsicht zu rigoroseren Methoden die Idee des Code-Camps war<br />

geboren.<br />

Die Idee dahinter war, dass sich die komplette Projektgruppe über <strong>ein</strong>en längeren Zeitraum<br />

gem<strong>ein</strong>sam zusammensetzt, von <strong>der</strong> Umwelt abschottet und zusammen im Team<br />

mindestens so l<strong>an</strong>ge programmiert, bis die gröÿten Brocken aus dem Weg geschat worden<br />

sind. Also traf sich <strong>der</strong> Groÿteil <strong>der</strong> Projektgruppe im Keller des Studentenwohnheims<br />

in <strong>der</strong> Huntem<strong>an</strong>nstraÿe. Dort wurde nun <strong>ein</strong>e Woche l<strong>an</strong>g jeden Tag von 15 bis 6 Uhr<br />

mit teilweise wechseln<strong>der</strong> Besetzung eiÿig entwickelt. Das Ergebnis war hervorragend.<br />

Es wurde überall sehr viel geschat. Viele aufkommende Probleme lieÿen sich im direkten<br />

Gespräch lösen beson<strong>der</strong>s diejenigen die schicht- und schnittstellenübergreifend waren.<br />

Das befürchtete gegenseitige Ablenken und von <strong>der</strong> Arbeit abhalten, blieb aus im Gegenteil:<br />

Fertig gewordene Funktionen, neu <strong>an</strong>gebundene Bibliotheken o<strong>der</strong> die Umsetzung<br />

des G<strong>an</strong>zen in <strong>ein</strong> <strong>an</strong>sprechendes Design hat alle gleichermaÿen beügelt. Wenn vorher<br />

die <strong>ein</strong> o<strong>der</strong> <strong>an</strong><strong>der</strong>e Mail mit Arbeitsaufträgen nicht beachtet worden war, so war das<br />

Abschlagen <strong>ein</strong>er direkten Bitte während dieser Tage nicht möglich m<strong>an</strong> bekam die<br />

Hilfe genau d<strong>an</strong>n, wenn m<strong>an</strong> sie brauchte.<br />

Aufgrund des Erfolg des Code-Camps hatten wir beschlossen, dass wir das G<strong>an</strong>ze auch<br />

die letzten vier verbleibenden Wochen noch weiterführen wollen nur eben virtuell per<br />

Chat. Auch das hat sehr gut funktioniert, da zu je<strong>der</strong> Zeit mindestens <strong>ein</strong> Drittel <strong>der</strong><br />

Teilnehmer dort zur Verfügung st<strong>an</strong>d.<br />

Auch wenn die Zeit während <strong>der</strong> Implementierung die mit Abst<strong>an</strong>d stressigste Zeit war,<br />

so war sie doch zugleich auch die schönste. Erst jetzt lernte m<strong>an</strong> sich so richtig kennen<br />

beson<strong>der</strong>s im Code-Camp. M<strong>an</strong> lernte, wie <strong>an</strong><strong>der</strong>e arbeiten wie <strong>an</strong><strong>der</strong>e Probleme<br />

lösen. Und m<strong>an</strong> lernte wirklich im Team zu arbeiten. Oft galt es eigene Arbeiten zur Seite<br />

zu legen, um bei <strong>der</strong> Lösung akuterer Probleme <strong>der</strong> <strong>an</strong><strong>der</strong>en mitzuhelfen. Je<strong>der</strong> <strong>ein</strong>zelne<br />

bekam durch den Dialog mit den <strong>an</strong><strong>der</strong>en <strong>ein</strong>en Überblick über das g<strong>an</strong>ze System.<br />

Letztendlich haben wir es trotz <strong>der</strong> kurzen Zeit geschat, alle uns selbst auferlegten Anfor<strong>der</strong>ungen,<br />

<strong>der</strong>en Realisierung technisch möglich war, zu erfüllen (siehe Kapitel 17). Die<br />

entwickelten Dienste in Form von Portlets fügen sich nahtlos in die Umgebung das Portal<br />

<strong>ein</strong> und bereichern es durch Layout und Funktionalität. Es war <strong>ein</strong> l<strong>an</strong>ger Weg vom<br />

ersten Gruppentreen vor <strong>ein</strong>em Jahr bis zur fertigen Software auf den wir alle mit sehr<br />

viel Stolz zurückblicken.<br />

19.3. Bewertung und Ausblick<br />

Wir konzentrierten uns während des Projektverlaufs auf <strong>ein</strong>e modulare und gut erweiterbare<br />

Entwicklung <strong>ein</strong>es Bibliothekssystems.<br />

Damit ergaben sich folgende Schwerpunkte:<br />

277


KAPITEL 19. ZUSAMMENFASSUNG UND BEWERTUNG<br />

• Anbindung verschiedener Bibliotheken <strong>an</strong> den Bibliotheksdienst<br />

• Gestaltung <strong>ein</strong>er <strong>ein</strong>fachen und erweiterbaren Suche<br />

• Einbinden des BIS-Benutzerkontos in das Portal-Benutzerkonto.<br />

Der Punkt erweiterbar wird beson<strong>der</strong>s deutlich, wenn es darum geht, <strong>ein</strong>e Vielzahl von<br />

verschiedenen Bibliotheken <strong>an</strong> das System <strong>an</strong>zuschlieÿen. Bereits jetzt wurden sechs exemplarische<br />

Bibliotheken in das System <strong>ein</strong>gebunden. Um neue <strong>ein</strong>zubauen braucht m<strong>an</strong><br />

nur die bestehenden Anbindungen realisiert als Wrapper als Vorbild zu nehmen.<br />

Ebenfalls zu<strong>fr</strong>ieden sind wir mit <strong>der</strong> Gestaltung <strong>der</strong> <strong>ein</strong>fachen und erweiterten Suche.<br />

Dazu muss allerdings erwähnt werden, dass wir gerne mehr Einstellungsmöglichkeiten in<br />

die erweiterten Suche integriert hätten.<br />

Darunter fallen zum Beispiel<br />

• die Suche nach bestimmten Medientypen,<br />

• die Aufteilung des ORBIS-Kataloges in Uhlhornsweg, Wechloy, Fachhochschule und<br />

L<strong>an</strong>desbibliothek,<br />

• die Wählbarkeit des Buchstatus von ausleihbar bis nach Absprache,<br />

• o<strong>der</strong> die Wahl <strong>der</strong> Sprache, in <strong>der</strong> das Buch verfasst wurde.<br />

Lei<strong>der</strong> waren wir da auf die Grenzen des von uns Machbaren gestoÿen. Denn bei allen<br />

möglichen Features sind wir abhängig von dem, was die verschiedenen Bibliotheken uns<br />

innerhalb ihrer Schnittstellen <strong>an</strong>bieten. Daher ist das Feld erweiterbare Suche noch stark<br />

ausbaufähig aber nur in Absprache mit den verschiedenen Bibliotheken und <strong>der</strong>en<br />

Schnittstellen.<br />

Sehr enttäuschend war für uns <strong>der</strong> Versuch <strong>der</strong> Einbindung des BIS-Benutzerkontos. Wir<br />

wollten dem Benutzer ermöglichen auf die Bibliotheksfunktionen, wie Verlängerung, Vormerkung<br />

und Löschen <strong>der</strong> Vormerkung, auch aus dem Portal heraus zu zugreifen. Lei<strong>der</strong><br />

mussten wir davon absehen, da <strong>ein</strong> aktiver Zugri des Portals auf die Dokumente, von<br />

seiten des BIS über die von uns verwendete Schnittstelle noch nicht realisiert ist. Also ist<br />

es dem Benutzer bisher ausschlieÿlich möglich, sich über s<strong>ein</strong>e Dokumente zu informieren,<br />

ob zum Beispiel Mahngebühren fällig sind o<strong>der</strong> Vormerkungen bestehen.<br />

M<strong>an</strong> k<strong>an</strong>n insofern sagen, dass wir unsere Ziele erreicht haben und die Schwerpunkte<br />

erfolgreich umgesetzt haben. Auch wenn wir bei <strong>ein</strong>igen Features Zugeständnisse <strong>an</strong> die<br />

Realität und die Grenzen unseres Einusses machen mussten.<br />

Während <strong>der</strong> Arbeit sind uns natürlich immer wie<strong>der</strong> neue benutzer<strong>fr</strong>eundliche Methoden<br />

<strong>ein</strong>gefallen, um den Benutzern <strong>ein</strong>en gröÿeren Service <strong>an</strong>zubieten. Wie wäre zum Beispiel<br />

die Integration <strong>ein</strong>es Lesezeichenportlets? Es hätte <strong>ein</strong>e ähnliche Funktion wie <strong>ein</strong> Warenkorb<br />

in <strong>ein</strong>em eShop o<strong>der</strong> <strong>ein</strong>er Wunschliste ähnlich wie bei Amazon und könnte auch den<br />

Export von Literaturlisten für Bachelor- o<strong>der</strong> Masterarbeiten in BibTex- o<strong>der</strong> Endnote-<br />

Format <strong>an</strong>bieten. Natürlich darf m<strong>an</strong> auch nicht den Livechat des BIS-Servicebereich<br />

auÿer Acht lassen. Solche und weitere Punkte wären gute Ergänzungen unseres <strong>Bibliotheksdienste</strong>s.<br />

Diese o<strong>der</strong> ähnliche Features <strong>ein</strong>zubauen wäre unser nächstes Ziel.<br />

Es ist uns klar, dass unser System noch <strong>ein</strong> paar Tuningmöglichkeiten oen lässt. Daher<br />

kamen wir in Absprache mit <strong>der</strong> BIS über<strong>ein</strong>, <strong>ein</strong>e Testphase innerhalb <strong>der</strong> Zentralbibliothek<br />

Uhlhornsweg durchzuführen. Es ist in Pl<strong>an</strong>ung <strong>ein</strong> paar Terminals mit unserem<br />

278


19.4. DANKSAGUNGEN<br />

Bibliotheksdienst in <strong>der</strong> Bibliothek aufzustellen, um so zu erfahren wie unsere Arbeit<br />

von den Benutzern bewertet wird. Dadurch können wie<strong>der</strong> neue Ideen entstehen, die das<br />

Bibliothekssystem noch attraktiver machen könnten.<br />

19.4. D<strong>an</strong>ksagungen<br />

Ein D<strong>an</strong>k geht <strong>an</strong> die Mitarbeiter <strong>der</strong> EDV-Abteilung <strong>der</strong> <strong>Uni</strong>versitätsbibliothek <strong>Oldenburg</strong>,<br />

die viel Zeit und Geduld für unsere Fragen und groÿes Entgegenkommen bei unseren<br />

Wünschen gezeigt haben.<br />

Ein beson<strong>der</strong>er D<strong>an</strong>k geht natürlich <strong>an</strong> unsere Betreuer, die unsere Arbeit mit viel Geduld,<br />

Wohlwollen und unerschütterlichem Glauben <strong>an</strong> unsere Fähigkeiten begleitet haben.<br />

279


Teil III.<br />

Anh<strong>an</strong>g<br />

281


A. Inhalt <strong>der</strong> DVD<br />

Dieses Kapitel gibt <strong>ein</strong>en Überblick über den Inhalt und den strukturellen Aufbau <strong>der</strong><br />

zum Endbericht gehörenden DVD. Sie b<strong>ein</strong>haltet alle im Rahmen des Projekts erstellten<br />

und entst<strong>an</strong>denen Dokumente und Ergebnisse. Eine detaillierte Beschreibung <strong>der</strong> Ordnerstruktur<br />

und <strong>der</strong> Inhalte des Datenträgers wird im folgenden vorgenommen.<br />

• Binaries: In diesem Ordner bendet sich <strong>der</strong> im Rahmen des Projekts entwickelte,<br />

auf Portlets basierende Bibliotheksdienst bestehend aus den sich <strong>an</strong> dieser Stelle<br />

bendenen JAR-, WAR und SAR-Archiven. Diese können <strong>ein</strong>fach im Applikationsserver<br />

des Liferay Portals deployed und zur Ausführung gebracht werden.<br />

• Dokumente: Dieser Ordner enthält alle während des Projekts entst<strong>an</strong>denen Dokumente.<br />

Ergebnisdokumente <strong>der</strong> Softwareentwicklung: Dieser Ordner enthält die<br />

im Rahmen <strong>der</strong> Projektgruppe erstellten Dokumente zur Dokumentation des<br />

Entwicklungsprozesses. Das Kerndokument stellt hier <strong>der</strong> Endbericht dar. Aber<br />

auch die Ergebnis<strong>an</strong>alyse <strong>der</strong> untersuchten <strong>Bibliotheksdienste</strong>, die Anfor<strong>der</strong>ungsdenition,<br />

<strong>der</strong> Entwurf o<strong>der</strong> das Benutzerh<strong>an</strong>dbuch sind hier zu nden.<br />

Java-Dokumentation: An dieser Stelle bendet sich die Dokumentation des<br />

Source-Codes (JavaDoc).<br />

Protokolle: Hier sind die Protokolle <strong>der</strong> <strong>ein</strong>zelnen Sitzungen zu nden.<br />

Seminarausarbeitungen: Dieser Ordner enthält die jeweiligen Ausarbeitungen<br />

zu den gehaltenen Seminaren.<br />

Seminarvorträge: Die Foliensätze zu den gehaltenen Präsentationen benden<br />

sich in diesem Ordner<br />

• Entwicklungswerkzeuge: An dieser Stelle können <strong>ein</strong>ige <strong>fr</strong>eie Entwicklungswerkzeuge<br />

gefunden werden, die die Projektgruppe zur Entwicklung und Implementierung<br />

<strong>der</strong> <strong>Bibliotheksdienste</strong> genutzt hat.<br />

Eclipse: Die <strong>fr</strong>eie IDE für Java in <strong>der</strong> Version 3.1.2 neben <strong>ein</strong>igen nützlichen<br />

Plugins.<br />

Liferay 3.6.1: Die Liferay Portalsoftware in <strong>der</strong> Version 3.6.1. Die entwickelten<br />

Portlets sind auf diesem System implementiert und getestet worden.<br />

Im Projekt wurde die Konguration mit dem integrierten JBoss Applikationsserver<br />

und dem Tomcat-Webserver verwendet.<br />

St<strong>an</strong>dalone JBoss: Der St<strong>an</strong>dalone JBoss Applikationsserver in <strong>der</strong> Version<br />

4.0.3.<br />

Versionsverwaltung: Ein Versionsverwaltungswerkzeug auf SVN-Basis für<br />

Windows-Betriebsysteme: TortoiseSVN in <strong>der</strong> Version 1.2.1.<br />

283


ANHANG A. INHALT DER DVD<br />

• Repository: In diesem Ordner bendet sich das vollständige SVN-Repository, wie<br />

es von <strong>der</strong> Projektgruppe zur parallelen Entwicklung <strong>der</strong> Software und <strong>der</strong> Pege <strong>der</strong><br />

Dokumentation genutzt worden ist. Das SVN-Repository hat die folgende Struktur:<br />

code: Dieser Ordner b<strong>ein</strong>haltet den kompletten Source-Code des Projekts geordnet<br />

nach Modulen und Paketen. Ebenso sind hier die Code-Bibliotheken<br />

(libs) o<strong>der</strong> diverse Kompilier- und Deploy-Skripte zu nden.<br />

dokumente: In diesem Ordner wurden alle während des Projekts entst<strong>an</strong>denen<br />

Dokumente abgelegt und gepegt. Dazu zählen neben Anfor<strong>der</strong>ungsdenition,<br />

Entwurf und Endbericht auch sämtliche Protokolle, Seminarausarbeitungen<br />

und Foliensätze sowie die Dokumentation des Javacodes (JavaDoc).<br />

fertige dokumente: Dieser Ordner enthält die Final-Versionen <strong>der</strong> im Rahmen<br />

<strong>der</strong> Projektgruppe erstellten Dokumente. Das Kerndokument stellt hier<br />

<strong>der</strong> Endbericht dar. Aber auch die Ergebnis<strong>an</strong>alyse <strong>der</strong> untersuchten <strong>Bibliotheksdienste</strong>,<br />

die Anfor<strong>der</strong>ungsdenition, <strong>der</strong> Entwurf o<strong>der</strong> das Benutzerh<strong>an</strong>dbuch<br />

sind hier zu nden.<br />

legacy: In diesem Ordner sind Zwischenergebnisse für Präsentationen, Beispiele<br />

für Technologien o<strong>der</strong> <strong>an</strong>gefertigte Proof Of Concepts zu nden.<br />

vorlagen: Im Ordner vorlagen benden sich Latex-Vorlagen für gruppeninterne<br />

Dokumente, wie Protokolle o<strong>der</strong> Seminarausarbeitungen.<br />

zeug: Dieser Ordner dient zur Speicherung o<strong>der</strong> zur Verfügungstellung von Dokumenten<br />

und Dateien, die thematisch nicht den <strong>an</strong><strong>der</strong>en Kategorien / Ordnern<br />

zugeordnet werden können.<br />

284


B. Das Departmentfussballturnier<br />

2005<br />

Damit sich alle Mitstreiter <strong>der</strong> Projektgruppe unter<strong>ein</strong><strong>an</strong><strong>der</strong> besser kennenlernen können,<br />

haben wir uns sehr schnell und <strong>ein</strong>stimmig dazu entschlossen, am alljährig stattnden<br />

Fussballturnier <strong>der</strong> Projektgruppen teilzunehmen. Lei<strong>der</strong> sind Informatiker in <strong>der</strong> Regel<br />

nicht die aller sportlichsten Menschen auf <strong>der</strong> Welt, so dass das <strong>ein</strong> o<strong>der</strong> <strong>an</strong><strong>der</strong>e Training<br />

im Vorfeld ja nicht schaden konnte. So f<strong>an</strong>d sich schon Wochen vor dem eigentlichen<br />

Turnier <strong>der</strong> harte Kern zu Trainingssitzungen zusammen jeweils im Anschluss <strong>an</strong> die<br />

regelmässigen Gruppentreen. Im Normalfall dauerte so <strong>ein</strong>e Sitzung 90 Minuten, was den<br />

<strong>ein</strong> o<strong>der</strong> <strong>an</strong><strong>der</strong>en aus unseren Reihen durchaus <strong>an</strong> s<strong>ein</strong>e Grenzen bringen sollte. Allerdings<br />

stellte sich schnell heraus, dass wir mit zwei Ballzauberern gesegnet waren Ahmed und<br />

Ling. Aber auch wir <strong>an</strong><strong>der</strong>en wussten sehr schnell mit dem runden Le<strong>der</strong> umzugehen.<br />

M<strong>an</strong> lernte sich mit jedem Mal besser kennen und schon bald verst<strong>an</strong>d m<strong>an</strong> sich nahezu<br />

blind nicht nur auf dem Platz. Die Zuversicht stieg mit jedem Training.<br />

D<strong>an</strong>n war es soweit <strong>der</strong> 17.08.2005 um 14:00 Uhr auf dem Sportplatz <strong>an</strong> <strong>der</strong> Haareneschstraÿe<br />

das Turnier beg<strong>an</strong>n. Neun wackere Spieler (siehe M<strong>an</strong>nschaftsfoto: B.1) mit<br />

dem Turniersieg vor Augen betraten das Spielfeld, um die Früchte <strong>der</strong> harten Arbeit zu<br />

ernten.<br />

Im folgenden <strong>der</strong> Originalbericht von Ahmed direkt noch am selben Abend voller<br />

Euphorie verfasst und per eMail <strong>an</strong> die Projektgruppe vers<strong>an</strong>d. So konnten auch diejenigen<br />

etwas von dem Feuer und dem El<strong>an</strong> spüren, die lei<strong>der</strong> nicht am Turnier teilnehmen<br />

konnten.<br />

Erstmal das Wichtigste: Wir sind 4. geworden von 15 Teams. Damit sind wir<br />

sehr zu<strong>fr</strong>ieden. Am Ende fehlte uns die Puste.<br />

Hier <strong>ein</strong> paar Highlights:<br />

Durch Herm<strong>an</strong>ns Torwartparaden gingen wir ohne Gegentor aus den Gruppenspielen<br />

hervor.<br />

Wir erl<strong>an</strong>gten sogar den ersten Platz in <strong>der</strong> Gruppe. Und das durch das Tor<br />

von Timo in <strong>der</strong> letzten Minute im letzten Spiel. So hatten wir <strong>ein</strong>e bessere<br />

Tordierenz als <strong>der</strong> Konkurrent.<br />

Gruppenspielergebnisse: 1:0, 0:0, 4:0!<br />

Im Viertelnale gew<strong>an</strong>nen wir erst nach <strong>ein</strong>em Elfmeterkrimi. Nachdem fast<br />

alle <strong>an</strong>getreten waren, verw<strong>an</strong>delte Miriam ihren Elfmeter souverän zum Sieg.<br />

Im Halbnale wollten d<strong>an</strong>n unsere Lungen nicht mehr. So verloren wir verdient<br />

3:0, obwohl die Tore sehr unglücklich entst<strong>an</strong>den. Beim Spiel um Platz 3 gingen<br />

wir schon auf dem Zahneisch. Aber trotzdem hätten wir auch das Spiel für uns<br />

entscheiden können. Lei<strong>der</strong> fehlte am Ende das Quäntchen Glück. So verloren<br />

wir das Spiel ebenfalls. Das 1:0 von unserem Gegner war ärgerlich. Aber es<br />

285


ANHANG B. DAS DEPARTMENTFUSSBALLTURNIER 2005<br />

hat unsere Laune nicht verdorben. D<strong>an</strong>ach hatten wir noch <strong>ein</strong> erfolgreiches<br />

Ausschwitzen mit <strong>ein</strong>igen Energy-Drinks (Becks war das glaube ich).<br />

Das schönste Tor schoss wohl Ling. Er eroberte den Ball am eigenen Stra<strong>fr</strong>aum<br />

und lieÿ sich d<strong>an</strong>n nicht mehr aufhalten. Er schoss eigentlich gar nicht ins<br />

Tor, son<strong>der</strong>n er trieb den Ball ins selbige. Er hatte so <strong>ein</strong> Tempo drauf, da<br />

konnte er nur noch vom Netz aufgehalten werden. Die Gegner hatten nur <strong>ein</strong>en<br />

Lufthauch gespürt von ihm. Ich glaub, die stehen da immer noch und suchen<br />

ihn.<br />

D<strong>an</strong>ke, hat Spaÿ gemacht. Und nächstes Mal holen wir uns den Pokal.<br />

Lei<strong>der</strong> konnten nicht alle PG-Mitglie<strong>der</strong> am Turnier teilnehmen, da es mitten in den Semesterferien<br />

stattf<strong>an</strong>d. Aber es haben sich am Tag <strong>der</strong> Entscheidung immerhin 9 Helden<br />

zusammengefunden, um auÿergewöhnliches zu vollbringen. Abbildung B.1 zeigt <strong>ein</strong> Gruppenfoto<br />

dieser legendären M<strong>an</strong>nschaft. Darauf fehlt unser Betreuer Jürgen Sauer, <strong>der</strong> nach<br />

<strong>der</strong> erfolgreich absolvierten Vorrunde lei<strong>der</strong> noch <strong>an</strong><strong>der</strong>e Termine wahrnehmen musste.<br />

Abbildung B.1.: Die Helden des Tages<br />

Obere Reihe: Timo Bernack, Timo Albrecht, Michael Riehem<strong>an</strong>n, Herm<strong>an</strong>n<br />

Schulte-Borchers, Miriam Wol, Ling Zou<br />

Untere Reihe: Ahmed Yousse, Alex<strong>an</strong><strong>der</strong> Duscheleit (von links nach rechts)<br />

286


C. Glossar<br />

Account<br />

Ein Account ist in <strong>ein</strong>em Onlinedienst <strong>ein</strong>e Einrichtung, die dazu dient, den Benutzer<br />

zu identizieren und dessen Aktivitäten zum Zweck <strong>der</strong> Abrechnung zu protokollieren.<br />

In diesem Zusammenh<strong>an</strong>g wird Account (wörtlich übersetzt: Konto, Guthaben)<br />

auch als Benutzerkonto bezeichnet.In lokalen Netzwerken und Mehrbenutzer-<br />

Betriebssystemen stellt <strong>der</strong> Account <strong>ein</strong>e vergleichbare Einrichtung dar. Da die Benutzung<br />

jedoch in <strong>der</strong> Regel nicht mit Kosten verbunden ist, wird <strong>der</strong> Account dort zum<br />

Zweck <strong>der</strong> Identikation, Verwaltung und Sicherheit <strong>an</strong>gelegt, nicht aber zur Abrechnung.<br />

Akteur<br />

Es ist <strong>der</strong> Akteur, <strong>der</strong> <strong>ein</strong>en Anwendungsfall <strong>an</strong>stöÿt o<strong>der</strong> <strong>der</strong> die erwarteten Resultate<br />

<strong>ein</strong>es Anwendungfalls entgegennimmt. Akteure sollten jedoch nicht mit konkreten h<strong>an</strong>delnden<br />

Personen o<strong>der</strong> Systemen verwechselt werden. Ein Akteur ist eher als <strong>ein</strong>e Art<br />

Rolle zu betrachten. Kundenberater ist zum Beispiel als Name für <strong>ein</strong>en Akteur weit<br />

wahrsch<strong>ein</strong>licher als H<strong>an</strong>s Meier vom Verkauf.<br />

Authentizierung<br />

Authentizierung bezeichnet den Vorg<strong>an</strong>g, die <strong>ein</strong>deutige Identität <strong>ein</strong>er Person <strong>an</strong>h<strong>an</strong>d<br />

<strong>ein</strong>es bestimmten Merkmals zu überprüfen.<br />

Benutzerkonto<br />

Ein Benutzerkonto ist auf <strong>ein</strong>em Sicherheits- o<strong>der</strong> Mehrbenutzersystem <strong>ein</strong>e Einrichtung,<br />

die <strong>ein</strong>er Einzelperson den Zugri auf <strong>ein</strong> System und s<strong>ein</strong>e Ressourcen ermöglicht.<br />

Ein Benutzerkonto wird im Allgem<strong>ein</strong>en durch den Systemverwalter <strong>ein</strong>gerichtet und<br />

enthält Angaben über den Benutzer (wie Kennwort, Rechte und Befugnisse).<br />

Br<strong>an</strong>ding<br />

Br<strong>an</strong>ding stammt vom englischen Wortstamm to br<strong>an</strong>d ab. Es geht um die Kennzeichnung<br />

<strong>ein</strong>es Produktes o<strong>der</strong> <strong>ein</strong>er Dienstleistung als Marke durch Bild, Wort- und<br />

Namenszeichen, Markenzeichen, Warenzeichen und Gütezeichen.<br />

Connector/J<br />

Connector ist <strong>der</strong> Name des JDBC-Treibers für das quelloene Datenb<strong>an</strong>km<strong>an</strong>agementsystem<br />

MySQL. Der Treiber liegt als JAR-Archiv vor und unterstützt die JDBC 3.0<br />

Spezikation.<br />

http://www.mysql.com/products/connector/j/<br />

Content (Inhalte)<br />

Content umfasst alle zur Informationsvermittlung <strong>ein</strong>er Web-Anwendung erfor<strong>der</strong>lichen<br />

Inhalte (Daten, Texte, Bil<strong>der</strong>, Videos etc.) und ist zu unterscheiden von Elementen zur<br />

Präsentation und Navigation.<br />

Datenb<strong>an</strong>km<strong>an</strong>agementsystem (DBMS)<br />

Ein Datenb<strong>an</strong>km<strong>an</strong>agementsystem ist je nach nicht immer g<strong>an</strong>z <strong>ein</strong>heitlicher Begris-<br />

287


ANHANG C. GLOSSAR<br />

denition Teil <strong>ein</strong>es übergeordneten Datenb<strong>an</strong>k- o<strong>der</strong> auch Informationssystems und<br />

dort zuständig für die Datenhaltung und die Denition des Datenmodells.<br />

Datenb<strong>an</strong>ksystem (DBS)<br />

Ein Datenb<strong>an</strong>ksystem ist <strong>ein</strong> <strong>ein</strong>faches Informationssystem, das aus Datenb<strong>an</strong>ken und<br />

<strong>ein</strong>em Datenb<strong>an</strong>km<strong>an</strong>agementssystem (DBMS) gebildet wird.<br />

Data Denition L<strong>an</strong>guage (DDL)<br />

Mit Data Denition L<strong>an</strong>guage ist <strong>ein</strong>e Untermenge <strong>der</strong> Datenb<strong>an</strong>kab<strong>fr</strong>agesprache SQL<br />

gem<strong>ein</strong>t, mit <strong>der</strong> <strong>der</strong> Aufbau <strong>der</strong> Datenb<strong>an</strong>k, d.h. (in <strong>ein</strong>em relationalen DBMS) die<br />

konkrete Tabellenstruktur, festgelegt wird.<br />

Digitale Bibliothek<br />

Eine Digitale Bibliothek bietet Literaturinformationen und Literatur elektronisch über<br />

das Internet.<br />

Drei-Schichten-Architektur<br />

Bei <strong>der</strong> Drei-Schichten-Architektur (o<strong>der</strong> Model-View-Controller-Modell, kurz MVC-<br />

Modell) h<strong>an</strong>delt es sich um <strong>ein</strong> Architekturmuster zur Trennung <strong>ein</strong>es Programms in die<br />

drei Einheiten Datenmodell (engl. Model), Präsentation (engl. View) und Programmsteuerung<br />

(engl. Controller). Ziel des Modells ist <strong>ein</strong> exibles Programmdesign, um u.a.<br />

<strong>ein</strong>e spätere Än<strong>der</strong>ung o<strong>der</strong> Erweiterung <strong>ein</strong>fach zu halten und die Wie<strong>der</strong>verwendbarkeit<br />

<strong>der</strong> <strong>ein</strong>zelnen Komponenten zu ermöglichen. Auÿerdem sorgt das Modell bei<br />

groÿen Anwendungen für <strong>ein</strong>e gewisse Übersicht und Ordnung durch Reduzierung <strong>der</strong><br />

Komplexität.<br />

Enterprise Java Be<strong>an</strong>s (EJB)<br />

Enterprise Java Be<strong>an</strong>s ist <strong>ein</strong>e st<strong>an</strong>dardisierte Komponente in <strong>der</strong> Programmiersprache<br />

Java. Sie ermöglicht Softwareentwicklern, Java-Technologie für die Erstellung wie<strong>der</strong>verwendbarer<br />

Serverkomponenten für geschäftliche Anwendungen <strong>ein</strong>zusetzen. EJB ist<br />

Teil von J2EE.<br />

http://java.sun.com/products/ejb/<br />

eXtensible Markup L<strong>an</strong>guage (XML)<br />

XML ist <strong>ein</strong> St<strong>an</strong>dard zur Erstellung maschinen- und menschenlesbarer Dokumente fürs<br />

Internet. XML erlaubt im Gegensatz zu HTML nicht nur <strong>ein</strong>e strukturelle Beschreibung<br />

<strong>ein</strong>es Textes, son<strong>der</strong>n auch <strong>ein</strong>e inhaltliche Klassizierung von Informationen sowie die<br />

Denition beliebiger neuer eigener Elemente. Mit XML-Browsern ist d<strong>an</strong>n die individuelle<br />

Darstellung von XML-Seiten für verschiedene Nutzergruppen möglich.<br />

http://www.w3.org/TR/2004/REC-xml11-20040204/<br />

eXtensible Stylesheet L<strong>an</strong>guage Tr<strong>an</strong>sformations (XSLT)<br />

XSLT ist <strong>ein</strong>e Sprache zur Tr<strong>an</strong>sformation <strong>ein</strong>es XML-Dokuments in <strong>ein</strong> <strong>an</strong><strong>der</strong>es XML-<br />

Dokument o<strong>der</strong> in <strong>ein</strong> <strong>an</strong><strong>der</strong>es Format, wie z. B. PDF.<br />

http://www.w3.org/TR/1999/REC-xslt-19991116/<br />

Entity-Relationship-Diagramm (ER-Diagramm)<br />

Ein ER-Diagramm ist <strong>ein</strong>e im Jahre 1976 entwickelte grasche Notation zur statischen<br />

Modellierung <strong>ein</strong>es Systems. M<strong>an</strong> unterscheidet zwischen Entitäten und Beziehungen.<br />

Hibernate<br />

Hibernate ist <strong>ein</strong> quelloenes Persistenz-Framework für Java. Ermöglicht O/R-Mapping,<br />

d.h. die Zuordnung von Java-Objektdaten zu in <strong>ein</strong>em DBMS abgelegten Tabellen.<br />

http://www.hibernate.org/<br />

288


Hypertext Markup L<strong>an</strong>guage (HTML)<br />

Hypertext Markup L<strong>an</strong>guage ist <strong>ein</strong>e Beschreibungssprache (l<strong>an</strong>guage), mit <strong>der</strong> m<strong>an</strong><br />

Texte, die Querverweise enthalten (hypertext), mithilfe <strong>ein</strong>gestreuter Markierungssymbole<br />

(markups) in Seiten aufteilen und die Einzelteile des Textes genau spezizieren<br />

k<strong>an</strong>n. Mit HTML werden die Dokumente im Internet dargestellt, so dass sie von Browsern<br />

in gewünschter Weise <strong>an</strong>gezeigt werden können.<br />

http://www.w3.org/MarkUp/<br />

Hypertext Tr<strong>an</strong>sfer Protocol (HTTP)<br />

Der Hypertext Tr<strong>an</strong>sfer Protocol deniert den Zugri von Clients, z. B. Webbrowsern,<br />

auf serverseitig gespeicherte Informationen im World Wide Web.<br />

http://www.faqs.org/rfcs/rfc2616.html<br />

Identity M<strong>an</strong>agement System<br />

Unter Identity-M<strong>an</strong>agement versteht m<strong>an</strong> die Verwaltung von Entitäten (Personen o<strong>der</strong><br />

Dinge) in <strong>ein</strong>em Unternehmen o<strong>der</strong> <strong>ein</strong>er Behörde. Ziel ist es, den Vorg<strong>an</strong>g des Zuordnes<br />

von systemweit <strong>ein</strong>deutigen Identikatoren zu <strong>ein</strong>er die Entität beschreibenden Attributen,<br />

wie etwa den Namen, so selten wie möglich (am besten nur <strong>ein</strong> <strong>ein</strong>ziges Mal)<br />

durchzuführen.<br />

Informationssystem<br />

Ein Informationssystem dient <strong>der</strong> rechnergestützten Erfassung, Speicherung, Verarbeitung,<br />

Pege, Analyse, Benutzung, Verbreitung, Disposition, Übertragung und Anzeige<br />

von Information.<br />

Java 2 Enterprise Edition (J2EE)<br />

Java 2 Platform, Enterprise Edition ist die Spezikation <strong>ein</strong>er St<strong>an</strong>dardarchitektur<br />

für die Ausführung von Anwendungskomponenten unter Fe<strong>der</strong>führung <strong>der</strong> Firma Sun<br />

Microsystems. Best<strong>an</strong>dteile <strong>der</strong> Spezikation werden innerhalb des Java Community<br />

Process von diversen Unternehmen erarbeitet und schlieÿlich <strong>der</strong> Öentlichkeit in Form<br />

<strong>ein</strong>es Dokuments und <strong>ein</strong>er Referenzimplementierung zur Verfügung gestellt. Mittlerweile<br />

wurde <strong>der</strong> Name in Java Platform, Enterprise Edition (Java EE) geän<strong>der</strong>t.<br />

http://java.sun.com/javaee/index.jsp<br />

Javadoc<br />

Javadoc ist <strong>ein</strong> Software-Dokumentationswerkzeug, das aus Java-Quelltexten automatisch<br />

Dokumentationsdateien erstellt.<br />

http://java.sun.com/j2se/javadoc/<br />

JavaScript<br />

JavaScript ist <strong>ein</strong>e objektbasierte, clientseitig ausgeführte Skriptsprache, die von <strong>der</strong><br />

Firma Netscape entwickelt wurde, um statische HTML-Seiten dynamisch zu gestalten.<br />

Java<br />

Java ist <strong>ein</strong> von Sun Microsystems entwickelte objektorientierte Programmiersprache.<br />

Das Konzept von Java ist sehr sicher und plattformneutral (d. h. Java k<strong>an</strong>n auf jedem<br />

Betriebssystem ausgeführt werden). Wurde gezielt für das Internet entwickelt.<br />

http://www.java.com<br />

JBoss<br />

JBoss Inc. ist <strong>ein</strong>e Firma, <strong>der</strong>en Hauptprojekt die Implementierung <strong>ein</strong>es J2EE-konformen<br />

Applikations-Servers ist. Zumeist wird aber auch <strong>der</strong> Applikations-Server selbst mit<br />

JBoss bezeichnet. Wenn <strong>der</strong> Kontext nicht <strong>ein</strong>deutig ist, ist die Bezeichnung JBoss<br />

289


ANHANG C. GLOSSAR<br />

AS, <strong>der</strong> ozielle Name des Produkts, präziser.<br />

http://www.jboss.com/products/jbossas<br />

Java Community Process (JCP)<br />

Bei Java Community Process h<strong>an</strong>delt es sich um <strong>ein</strong> St<strong>an</strong>dardisierungskomitee, das sich<br />

speziell <strong>der</strong> Weiterentwicklung <strong>der</strong> Programmiersprache Java widmet. Der JCP erzeugt<br />

die JSRs, wobei nach <strong>ein</strong>em Org<strong>an</strong>isationsablauf vorgeg<strong>an</strong>gen wird, <strong>der</strong> s<strong>ein</strong>erseits in<br />

<strong>ein</strong>em JSR deniert ist (JSR 215).<br />

http://www.jcp.org/en/home/index<br />

Java Database Connectivity (JDBC)<br />

Java Database Connectivity ist <strong>ein</strong>e API-Spezikation <strong>der</strong> Java-Plattform, die <strong>ein</strong>e <strong>ein</strong>heitliche<br />

Schnittstelle zu Datenb<strong>an</strong>ken verschiedener Hersteller bietet und speziell auf<br />

relationale Datenb<strong>an</strong>ken ausgerichtet ist.<br />

http://java.sun.com/products/jdbc/<br />

Java Message Service (JMS)<br />

Java Message Service ist <strong>ein</strong>e API <strong>der</strong> Firma Sun Microsystems für den Austausch<br />

von Nachrichten zwischen zwei o<strong>der</strong> mehr Clients, die in <strong>der</strong> Programmiersprache Java<br />

geschrieben sind.<br />

http://java.sun.com/products/jms/<br />

Java Open Application Server (JOnAs)<br />

Der Java Open Application Server ist neben JBoss bis dato <strong>ein</strong>ziger quelloener und<br />

lizenzkosten<strong>fr</strong>eier Applikationsserver mit J2EE 1.4 Zertizierung.<br />

http://jonas.objectweb.org/<br />

JSR-168<br />

JSR-168 ist <strong>ein</strong>e Java Portlet Spezikation für die Kommunikation zwischen Portlet<br />

und Portal.<br />

http://www.jcp.org/en/jsr/detail?id=168<br />

Java Specication Request (JSR)<br />

Java Specication Request sind Ergebnisse des JCP in Form von versionierten Spezikationsdokumenten.<br />

JavaServer Pages St<strong>an</strong>dard Tag Library (JSTL)<br />

Die JavaServer Pages St<strong>an</strong>dard Tag Library ist <strong>ein</strong>e Sammlung von vier Custom-Tag<br />

Bibliotheken, die für die Erstellung von JSP-Seiten hil<strong>fr</strong>eich sind.<br />

http://java.sun.com/products/jsp/jstl/<br />

JavaServer Pages (JSP)<br />

JavaServer Pages ist <strong>ein</strong>e von Sun Microsystems entwickelte Technologie, die im Wesentlichen<br />

zur <strong>ein</strong>fachen dynamischen Erzeugung von HTML- und XML-Ausgaben <strong>ein</strong>es<br />

Webservers dient. Sie erlaubt es Java-Code und spezielle JSP-Aktionen in statischen<br />

Inhalt <strong>ein</strong>zubetten. Dies hat den Vorteil, dass die Logik unabhängig vom Design implementiert<br />

werden k<strong>an</strong>n.<br />

http://java.sun.com/products/jsp/<br />

Liferay-Portal<br />

Das Liferay-Portal ist <strong>ein</strong> Webbasiertes Informations-Portal und Anwendungs<strong>fr</strong>amework<br />

mit zentralem Berechtigungs-Konzept.<br />

http://www.liferay.com/web/guest/home<br />

Lernm<strong>an</strong>agement-System (LMS)<br />

290


Ein Lernm<strong>an</strong>agement-System, auch Learning M<strong>an</strong>agement System o<strong>der</strong> Lernplattform<br />

gen<strong>an</strong>nt, bildet in <strong>der</strong> Regel den technischen Kern <strong>ein</strong>er komplexen webbasierten E-<br />

Learning In<strong>fr</strong>astruktur. Es h<strong>an</strong>delt sich dabei um <strong>ein</strong>e auf <strong>ein</strong>em Webserver installierte<br />

Software, die das Bereitstellen und die Nutzung von Lerninhalten unterstützt und Instrumente<br />

für das kooperative Arbeiten und <strong>ein</strong>e Nutzerverwaltung bereitstellt.<br />

Lehrver<strong>an</strong>staltungspl<strong>an</strong> (LVP)<br />

Im Lehrver<strong>an</strong>staltungspl<strong>an</strong> werden alle Lehrver<strong>an</strong>staltungen <strong>an</strong> <strong>der</strong> <strong>Uni</strong>versität aufgeführt<br />

mit dessen Zeiten und Raumbelegungen.<br />

Machine-Readable Cataloguing (MARC)<br />

Machine-Readable Cataloguing ist <strong>ein</strong> St<strong>an</strong>dard für bibliographische Angaben in maschinenlesbarer<br />

Form. Es ist die internationale Vari<strong>an</strong>te zum MAB.<br />

Maschinelles Austauschformat für Bibliotheken (MAB)<br />

Das Maschinelle Austauschformat für Bibliotheken ist <strong>ein</strong> vor allem im Deutschen Bibliothekswesen<br />

gebräuchliches Austauschformat für Metadaten.<br />

Message-Driven-Be<strong>an</strong> (MDB)<br />

Message-Driven-Be<strong>an</strong> ist neben Session-Be<strong>an</strong> und Entity-Be<strong>an</strong> die dritte <strong>der</strong> EJB-<br />

Arten. MDBs werden <strong>ein</strong>gesetzt zur Verarbeitung von JMS-Nachrichten.<br />

Metadaten<br />

Metdadaten sind Daten, die Informationen über <strong>an</strong><strong>der</strong>e Daten enthalten.<br />

Middleware<br />

Middleware bezeichnet in <strong>der</strong> Informatik <strong>an</strong>wendungsunabhängige Technologien, die<br />

Dienstleistungen zur Vermittlung zwischen Anwendungen <strong>an</strong>bieten, so dass die Komplexität<br />

<strong>der</strong> zugrundeliegenden Applikationen und In<strong>fr</strong>astruktur verborgen wird.<br />

MySQL<br />

MySQL ist <strong>ein</strong> quelloenes und lizenzkosten<strong>fr</strong>eies DBMS mit groÿer Verbreitung und<br />

weitreichen<strong>der</strong> Kompatibilität.<br />

http://www.mysql.com/<br />

Open Archives Initiative (OAI)<br />

Die Protokolle und St<strong>an</strong>dards <strong>der</strong> Open Archives Initiative dienen dazu, Informationen<br />

und (digital verfügbare) wissenschaftliche Dokumente in <strong>ein</strong>em <strong>ein</strong>heitlichen Format<br />

online zur Verfügung zu stellen.<br />

http://www.openarchives.org/<br />

<strong>Oldenburg</strong>er Bibliotheks- und Informationssystem (BIS)<br />

Bibliotheks- und Informationssystem über <strong>ein</strong>e Kooperation von Bibliotheken aus <strong>Oldenburg</strong>.<br />

Portal<br />

Eine Portal-Website ist <strong>ein</strong>e Zusammenstellung von Verknüpfungen, Inhalten und Diensten,<br />

die dem Benutzer interess<strong>an</strong>te Informationen bereitstellt, wie Nachrichten, Wetterberichte,<br />

Unterhaltung, kommerzielle Sites, Chaträume usw. Yahoo und Lycos sind<br />

Beispiele für Portal-Websites.<br />

Portlet<br />

Ein Portlet ist <strong>ein</strong> kl<strong>ein</strong>es Programm, das in <strong>der</strong> Programmiersprache Java geschrieben<br />

ist und im Prinzip die Fähigkeiten <strong>ein</strong>es Servers erweitert, in diesem Fall die <strong>ein</strong>es<br />

Portalservers. Portlets stellen dabei auf <strong>der</strong> Clientseite <strong>ein</strong>e <strong>ein</strong>fach zu benutzende Ober-<br />

291


ANHANG C. GLOSSAR<br />

äche innerhalb des Browsers dar (Fenster mit Knöpfen zum Maximieren, Minimieren,<br />

Editieren, Hilfe). Intern, also auf Serverseite, k<strong>an</strong>n nun <strong>ein</strong>e beliebige Anwendung liegen,<br />

die ihre Darstellung auf des Portlet weiterleitet.<br />

Prototyp<br />

Ein Prototyp ist <strong>ein</strong>e ausführbare und evaluierbare Version <strong>ein</strong>es Systems o<strong>der</strong> Systemteils<br />

(evolutionärer Prototyp), um ausgewählte Merkmale des späteren, operationellen<br />

Systems (explorativer o<strong>der</strong> experimenteller Prototyp) zu evaluieren; <strong>ein</strong> für die jeweiligen<br />

Zwecke voll funktionsfähiges Versuchsmodell <strong>ein</strong>es gepl<strong>an</strong>ten Produktes.<br />

Resource Description Framework (RDF)<br />

RDF ist <strong>ein</strong>e Beschreibungssprache zur Denition von Metadaten von Ressourcen. Eine<br />

Ressource ist jede Informationsquelle im Web, die durch <strong>ein</strong>e URI <strong>ein</strong>deutig identizierbar<br />

ist. RDF ist <strong>ein</strong>e Entwicklung des World Wide Web Consortiums (W3C) und steht<br />

<strong>fr</strong>ei zur Verwendung. In Verbindung mit RDF-Schema und <strong>der</strong> Web Ontology L<strong>an</strong>guage<br />

(OWL) soll RDF als grundlegendes Format zur Repräsentation von Taxonomien und<br />

Ontologien also formalen Vokabularen im Allgem<strong>ein</strong>en dienen. Der Haupt<strong>an</strong>wendungsbereich<br />

von RDF ist das sem<strong>an</strong>tische Web, das <strong>ein</strong>e Erweiterung des bestehenden<br />

Webs mit maschineninterpretierbaren Inhalten darstellt.<br />

http://www.w3.org/TR/2004/REC-rdf-primer-20040210/<br />

Scalable Vector Graphics (SVG)<br />

SVG ist <strong>ein</strong> St<strong>an</strong>dard zur Beschreibung zweidimensionaler Vektorgraken in <strong>der</strong> XML-<br />

Syntax.<br />

http://www.w3.org/TR/2003/REC-SVG11-20030114/<br />

Schnittstelle<br />

Schnittstelle ist <strong>ein</strong> Teil <strong>ein</strong>es Systems, das dem Austausch von Informationen als Sp<strong>an</strong>nungen,<br />

Energie o<strong>der</strong> Materie <strong>an</strong>alog o<strong>der</strong> digital mit <strong>an</strong><strong>der</strong>en Systemen dient. Bei<br />

<strong>ein</strong>er Schnittstelle werden digitale o<strong>der</strong> auch <strong>an</strong>aloge Daten übergeben. Eine Schnittstelle<br />

wird durch <strong>ein</strong>e Menge von Regeln beschrieben, <strong>der</strong> Schnittstellenbeschreibung.<br />

Neben <strong>der</strong> Beschreibung, welche Funktionen vorh<strong>an</strong>den sind und wie sie benutzt werden,<br />

gehört zu <strong>der</strong> Schnittstellenbeschreibung auch <strong>ein</strong> so gen<strong>an</strong>nter Kontrakt, <strong>der</strong> die<br />

Sem<strong>an</strong>tik <strong>der</strong> <strong>ein</strong>zelnen Funktionen beschreibt.<br />

Search/Retrieve via URL (SRU)<br />

SRU ist <strong>ein</strong> st<strong>an</strong>dardisiertes Protokoll für Internetsuch<strong>an</strong><strong>fr</strong>agen unter Zuhilfenahme <strong>der</strong><br />

CQL (Common Query L<strong>an</strong>guage), <strong>ein</strong>er Syntax für An<strong>fr</strong>agen.<br />

Server-Side Include (SSI)<br />

SSI beschreibt Mech<strong>an</strong>ismen, bei denen <strong>ein</strong> Webserver dynamisch Werte in <strong>ein</strong>e HTML-<br />

Seite <strong>ein</strong>fügen k<strong>an</strong>n, bevor die Seite <strong>an</strong> den Browser geschickt wird. Die aktuelle Systemzeit<br />

ist <strong>ein</strong> <strong>ein</strong>faches Beispiel für <strong>ein</strong> SSI.<br />

Simple Object Access Protocol (SOAP)<br />

SOAP ist <strong>ein</strong> XML-basiertes Protokoll zum systemunabhängigen Austausch von Nachrichten.<br />

Es deniert <strong>ein</strong>en XML-Envelope zum Austausch von XML-Nachrichten über<br />

verschiedene Protokolle wie HTTP, SMTP und <strong>an</strong><strong>der</strong>e.<br />

Single-Sign-On<br />

Single-Sign-On bedeutet, dass <strong>ein</strong> Benutzer nach <strong>ein</strong>er <strong>ein</strong>maligen Authentizierung auf<br />

alle Rechner und Dienste, für die er berechtigt ist, zugreifen k<strong>an</strong>n, ohne sich jedesmal<br />

neu <strong>an</strong>zumelden. Ein Benutzer besitzt dadurch nur <strong>ein</strong>e <strong>ein</strong>zige Identität, die nur <strong>ein</strong>mal<br />

292


(z.B. durch Passwort<strong>ein</strong>gabe) veriziert werden muss.<br />

Structured Query L<strong>an</strong>guage (SQL)<br />

Structured Query L<strong>an</strong>guage ist <strong>ein</strong>e deklarative Ab<strong>fr</strong>agesprache für relationale DBMS.<br />

Synchronized Multimedia Integration L<strong>an</strong>guage (SMIL)<br />

SMIL ist <strong>ein</strong> auf XML basieren<strong>der</strong>, von dem World Wide Web Consortium (W3C)<br />

entwickelter St<strong>an</strong>dard für zeitsynchronisierte, multimediale Inhalte. SMIL ermöglicht<br />

die Einbindung und Steuerung von Multimedia-Elementen wie Audio, Video, Text und<br />

Grak in Webseiten.<br />

http://www.w3.org/TR/1998/REC-smil-19980615/<br />

Tomcat<br />

Tomcat ist <strong>ein</strong>e Referenz-Implementierung <strong>der</strong> JSP-Spezikation.<br />

http://tomcat.apache.org/<br />

<strong>Uni</strong>ed Modeling L<strong>an</strong>guage (UML)<br />

<strong>Uni</strong>ed Modeling L<strong>an</strong>guage (dt. ver<strong>ein</strong>heitliche Modellierungssprache) dient zum <strong>ein</strong>en<br />

<strong>der</strong> Ver<strong>an</strong>schaulichung und dem Dokumentieren von Ideen, Modellen, Vorgehensweisen<br />

und Lösungen, zum <strong>an</strong><strong>der</strong>en k<strong>an</strong>n m<strong>an</strong> mit ihr spezizieren und entwerfen. Dies erfolgt<br />

vor allem mithilfe von Diagrammen.<br />

<strong>Uni</strong>versal Description, Discovery, <strong>an</strong>d Integration (UDDI)<br />

UDDI ist <strong>ein</strong>e technische Spezikation für die Beschreibung, Entdeckung und Integration<br />

von Web-Services. Die so gen<strong>an</strong>nten White Pages enthalten allgem<strong>ein</strong>e Informationen<br />

über das Unternehmen, die Yellow Pages weitere Klassikationsdaten, basierend<br />

auf Industriest<strong>an</strong>dardtaxonomien, und die Green Pages enthalten die technischen Informationen<br />

über die zur Verfügung gestellten Web-Services.<br />

URICA<br />

URICA ist <strong>ein</strong> Bibliotheksverzeichnissystem.<br />

Use Case<br />

Ein Use Case im Deutschen auch als Anwendungsfall bezeichnet deniert die Interaktionen<br />

zwischen Akteuren und dem betrachteten System, die stattnden, um <strong>ein</strong><br />

bestimmtes fachliches Ziel zu erreichen. Anwendungsfälle beschreiben immer nur genau<br />

<strong>ein</strong>en Ablauf o<strong>der</strong> <strong>ein</strong>en Geschäftsprozess.<br />

WAI<br />

Das WAI ist <strong>ein</strong> Unterbereich des W3C-Konsortiums, das sich mit dem barriere<strong>fr</strong>eien<br />

Zug<strong>an</strong>g zum Internet und s<strong>ein</strong>en Inhalten beschäftigt.<br />

http://www.w3.org/WAI/<br />

Web Service Description L<strong>an</strong>guage (WSDL)<br />

WSDL ist <strong>ein</strong>e XML-basierte Sprache zur Beschreibung <strong>ein</strong>es Web-Service. Ein WSDL-<br />

Dokument b<strong>ein</strong>haltet die Schnittstellenbeschreibung des Dienstes, Informationen über<br />

die verwendeten Datentypen, Binding-Informationen über die verwendeten Tr<strong>an</strong>sportprotokolle<br />

und Adressinformationen für die Lokalisation des Dienstes.<br />

World Wide Web Consortium (W3C)<br />

Das World Wide Web Consortium ist das Gremium zur St<strong>an</strong>dardisierung das World<br />

Wide Web betreen<strong>der</strong> Techniken. Grün<strong>der</strong> und Vorsitzen<strong>der</strong> des W3C ist Tim Berners-<br />

Lee, <strong>der</strong> auch als <strong>der</strong> Ern<strong>der</strong> des World Wide Web bek<strong>an</strong>nt ist. Bei <strong>der</strong> Entwicklung<br />

neuer St<strong>an</strong>dards hat sich das W3C verpichtet, nur noch Technologien zu verwenden,<br />

die <strong>fr</strong>ei von Patentgebühren sind.<br />

293


ANHANG C. GLOSSAR<br />

XML Path L<strong>an</strong>guage (XPath)<br />

XPath ist <strong>ein</strong>e vom W3C-Konsortium entwickelte An<strong>fr</strong>agesprache um Teile <strong>ein</strong>es XML-<br />

Dokumentes zu adressieren. Auf diese Weise k<strong>an</strong>n <strong>ein</strong>e Suche und Navigation in XML-<br />

Dokumenten durchgeführt werden. XPath dient als Grundlage <strong>ein</strong>er Reihe weiterer<br />

St<strong>an</strong>dards wie XSLT, XPointer und XQuery.<br />

http://www.w3.org/TR/1999/REC-xpath-19991116/<br />

Z39.50<br />

Das Z39.50 ist <strong>ein</strong> St<strong>an</strong>dard, <strong>der</strong> <strong>ein</strong> Protokoll zur Informationsbeschaung aus Datenb<strong>an</strong>ken<br />

auf <strong>der</strong> Anwendungsschicht deniert. Mit Hilfe des Protokolls ist es möglich,<br />

mehrere Informationssysteme über <strong>ein</strong>e <strong>ein</strong>heitliche Schnittstelle abzu<strong>fr</strong>agen. Gleichzeitig<br />

k<strong>an</strong>n das jeweilige Informationssystem die Daten in unterschiedlicher Form übermitteln,<br />

sodass es spezischen Anfor<strong>der</strong>ungen genügen k<strong>an</strong>n.<br />

294


D. Verzeichnisse<br />

Abbildungsverzeichnis<br />

2.1 Projektorg<strong>an</strong>isation und Umfeld . . . . . . . . . . . . . . . . . . . . . . . 20<br />

2.2 Phase <strong>der</strong> Durchführung . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

2.3 Beispiel für Mitarbeiter<strong>ein</strong>satz im Projektverlauf . . . . . . . . . . . . . . 24<br />

2.4 Projektprobleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />

2.5 Kosten im Zusammenh<strong>an</strong>g mit <strong>ein</strong>em Webprojekt . . . . . . . . . . . . . 27<br />

3.1 Vari<strong>an</strong>te <strong>ein</strong>es G<strong>an</strong>tt-Charts . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />

4.1 J2EE Enterprise Application Model . . . . . . . . . . . . . . . . . . . . . 44<br />

4.2 Best<strong>an</strong>dteile <strong>ein</strong>er Session Be<strong>an</strong> . . . . . . . . . . . . . . . . . . . . . . . 46<br />

4.3 Session-Façade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49<br />

5.1 Anfor<strong>der</strong>ungen <strong>an</strong> die Modellierung von Web-Anwendungen . . . . . . . . 54<br />

5.2 Teilaufgaben des Designs von Web-Anwendungen . . . . . . . . . . . . . 57<br />

5.3 Vorgehensweisen beim Architekturentwurf . . . . . . . . . . . . . . . . . 58<br />

6.1 Klassisches IT-System und dessen Abhängigkeiten . . . . . . . . . . . . . 65<br />

6.2 IT-Struktur unter Verwendung <strong>ein</strong>es Portals . . . . . . . . . . . . . . . . 65<br />

6.3 Portal Integration zwischen Clients und Informationssysteme . . . . . . . 68<br />

7.1 Überblick <strong>der</strong> Portal-Architektur . . . . . . . . . . . . . . . . . . . . . . . 72<br />

7.2 Beispiel <strong>ein</strong>er Portal-Page auf Basis des Portals Liferay . . . . . . . . . . 74<br />

7.3 Verzeichnisstruktur WAR-Archiv . . . . . . . . . . . . . . . . . . . . . . 76<br />

7.4 Portal-Architektur bei Verwendung von WSRP . . . . . . . . . . . . . . . 78<br />

7.5 Typische WSRP-Architektur . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />

8.1 Liferay: Themes zur Personalisierung . . . . . . . . . . . . . . . . . . . . 81<br />

8.2 Liferay: Sub-Themes weitere M<strong>an</strong>ipulationen <strong>der</strong> Ansicht . . . . . . . . 81<br />

8.3 Liferay: Portletfunktionen d<strong>an</strong>k AJAX jetzt auch per drag-n-drop . . 82<br />

8.4 Liferay: Dokumentennverwaltung als Portlet . . . . . . . . . . . . . . . . 82<br />

8.5 Liferay: Image Gallery . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />

8.6 Liferay: WYSIWYG Editor . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />

8.7 Liferay: Lokalisiertung durch JSTL . . . . . . . . . . . . . . . . . . . . . 85<br />

8.8 Liferay: Demployment-Matrix . . . . . . . . . . . . . . . . . . . . . . . . 86<br />

295


Abbildungsverzeichnis<br />

8.9 Liferay: Systemarchitektur . . . . . . . . . . . . . . . . . . . . . . . . . . 87<br />

9.1 Komponenten <strong>ein</strong>er digitalen Bibliothek . . . . . . . . . . . . . . . . . . . 95<br />

10.1 Externe Einbindung <strong>ein</strong>er digitalen Bibliothek . . . . . . . . . . . . . . . 106<br />

10.2 Struktur <strong>ein</strong>er digitalen Bibliothek . . . . . . . . . . . . . . . . . . . . . . 107<br />

11.1 5-Ebenen-Schema-Architektur . . . . . . . . . . . . . . . . . . . . . . . . 112<br />

11.2 Systemskizze für DL-integriertes Portal auf Basis des Mediator-Wrapper . 113<br />

11.3 InfoBus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115<br />

11.4 eVerlage-Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />

11.5 OMNIS/2-Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117<br />

11.6 Der Virtuelle Dokumentenserver <strong>der</strong> BlueView-Architektur . . . . . . . . 118<br />

11.7 DAFFODIL-Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . 119<br />

15.1 UML Anwendungsfalldiagramm des zu entwickelnden Systems . . . . . . 160<br />

15.2 Gesamt<strong>an</strong>sicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174<br />

15.3 Portlet - Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175<br />

15.4 Portlet - <strong>ein</strong>fache Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175<br />

15.5 Portlet - erweiterte Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . 176<br />

15.6 Portlet - Ergebnisausgabe . . . . . . . . . . . . . . . . . . . . . . . . . . 177<br />

15.7 Portlet - Ergebnisausgabe mit Details . . . . . . . . . . . . . . . . . . . . 178<br />

15.8 Portlet - Benutzerkonto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179<br />

15.9 Benutzerkonto - Such<strong>ein</strong>stellungen . . . . . . . . . . . . . . . . . . . . . . 179<br />

15.10 Benutzerkonto - Dokumentenübersicht . . . . . . . . . . . . . . . . . . . 180<br />

15.11 Benutzerkonto - Weitere Einstellungen . . . . . . . . . . . . . . . . . . . 181<br />

15.12 mögliche Erweiterungsportlets . . . . . . . . . . . . . . . . . . . . . . . . 181<br />

15.13 mögliche Erweiterung: Lesezeichen Portlet . . . . . . . . . . . . . . . . . 182<br />

16.1 Grobarchitektur des <strong>Bibliotheksdienste</strong>s, schichtenorientierte Sicht . . . . 188<br />

16.2 Grobarchitektur des <strong>Bibliotheksdienste</strong>s, komponentenorientierte Sicht . . 190<br />

16.3 Sequenzdiagramm für das gesamte System . . . . . . . . . . . . . . . . . 191<br />

16.4 Sequenzdiagramm EJB-Schicht . . . . . . . . . . . . . . . . . . . . . . . . 192<br />

16.5 Sequenzdiagramm Mediator und Wrapper . . . . . . . . . . . . . . . . . . 193<br />

16.6 Paketdiagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194<br />

16.7 Klassendiagramm <strong>der</strong> Suchlogik . . . . . . . . . . . . . . . . . . . . . . . 199<br />

16.8 Sequenzdiagramm <strong>der</strong> Suchlogik . . . . . . . . . . . . . . . . . . . . . . . 200<br />

16.9 Paket org.pgportal.ejb.dto: Struktur <strong>der</strong> An<strong>fr</strong>age Objekte . . . . . . . . . 203<br />

16.10 Paket org.pgportal.ejb.dto: Struktur <strong>der</strong> Ergebnis Objekte . . . . . . . . 204<br />

16.11 Paket org.pgportal.ejb.wrapper : Struktur . . . . . . . . . . . . . . . . . . 207<br />

16.12 Klassendiagramm des Benutzerkontos . . . . . . . . . . . . . . . . . . . . 211<br />

16.13 Sequenzdiagramm: Abrufen <strong>der</strong> Einstellungen des Benutzerkontos . . . . 212<br />

16.14 Sequenzdiagramm: Abrufen <strong>der</strong> Suchgeschichte . . . . . . . . . . . . . . . 212<br />

16.15 Sequenzdiagramm: Abrufen <strong>der</strong> Dokumentenübersicht . . . . . . . . . . . 213<br />

16.16 Sequenzdiagramm: Än<strong>der</strong>n des Accounts <strong>der</strong> digitalen Bibliothek . . . . . 214<br />

16.17 Sequenzdiagramm: Än<strong>der</strong>n <strong>der</strong> Such<strong>ein</strong>stellungen . . . . . . . . . . . . . 214<br />

16.18 Sequenzdiagramm: Än<strong>der</strong>n <strong>der</strong> Benachrichtigungs<strong>ein</strong>stellungen . . . . . . 215<br />

16.19 Sequenzdiagramm: Speichern <strong>der</strong> Suchgeschichte . . . . . . . . . . . . . . 215<br />

16.20 Sequenzdiagramm: Verlängerung <strong>der</strong> Dokumente . . . . . . . . . . . . . . 216<br />

16.21 Sequenzdiagramm: Vormerken <strong>der</strong> Dokumente . . . . . . . . . . . . . . . 217<br />

296


Abbildungsverzeichnis<br />

16.22 Sequenzdiagramm: Löschen <strong>der</strong> vorgemerkten Dokumente . . . . . . . . . 217<br />

16.23 GUI: Gesamt<strong>an</strong>sicht im Liferay-Portal . . . . . . . . . . . . . . . . . . . . 218<br />

16.24 GUI: Liferay Navigations-Portlet . . . . . . . . . . . . . . . . . . . . . . . 219<br />

16.25 GUI: Such-Portlet (Einfache Suche) . . . . . . . . . . . . . . . . . . . . . 219<br />

16.26 GUI: Such-Portlet (Erweiterte Suche) . . . . . . . . . . . . . . . . . . . . 220<br />

16.27 GUI: Such-Portlet (Ergebnisausgabe) . . . . . . . . . . . . . . . . . . . . 221<br />

16.28 GUI: Such-Portlet (Ergebnisausgabe mit Volldarstellung) . . . . . . . . . 222<br />

16.29 GUI: Benutzerkonto-Portlet (Persönliche Daten) . . . . . . . . . . . . . . 223<br />

16.30 GUI: Benutzerkonto-Portlet (Suchkriterien Einstellungen) . . . . . . . . . 223<br />

16.31 GUI: Benutzerkonti-Portlet (Dokumentenübersicht) . . . . . . . . . . . . 224<br />

16.32 GUI: Benutzerkonto-Portlet (Weitere Einstellungen) . . . . . . . . . . . . 225<br />

16.33 GUI: Beispiel für <strong>ein</strong> Informations-Portlet (Önungszeiten) . . . . . . . . 225<br />

16.34 GUI: Lesezeichen-Portlet . . . . . . . . . . . . . . . . . . . . . . . . . . . 226<br />

16.35 GUI: Portlet-Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226<br />

17.1 Gesamtpaketübersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235<br />

17.2 Paket org.pgportal.ejb.dto (globale Informationen) . . . . . . . . . . 236<br />

17.3 Paket org.pgportal.ejb.dto.request (An<strong>fr</strong>age-Objekte) . . . . . . . . 237<br />

17.4 Paket org.pgportal.ejb.dto.result (Ergebnis-Objekte) . . . . . . . . 239<br />

17.5 Paket org.pgportal.ejb.dto.definitions (Objekte für allgem<strong>ein</strong>e De-<br />

nitionen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240<br />

17.6 Paket org.pgportal.ejb.util (Hilfsklassen) . . . . . . . . . . . . . . . 241<br />

17.7 Klassendiagramm <strong>der</strong> Suchlogik . . . . . . . . . . . . . . . . . . . . . . . 245<br />

17.8 Klassendiagramm des Mediators . . . . . . . . . . . . . . . . . . . . . . . 247<br />

17.9 Paket org.pgportal.ejb.wrapper (DefaultWrapper) . . . . . . . . . . . 248<br />

17.10 Paket org.pgportal.ejb.wrapper.sru (Wrapper zur Suche auf SRUbasierenden<br />

Quellen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249<br />

17.11 Klassendiagramm des OAI-Wrappers . . . . . . . . . . . . . . . . . . . . 250<br />

17.12 Klassendiagramm des OAI-Harvester . . . . . . . . . . . . . . . . . . . . 251<br />

17.13 Paket org.pgportal.ejb.wrapper.OAI (OAI-Objekte) . . . . . . . . . . 252<br />

17.14 Klassendiagramm des Benutzerkontos . . . . . . . . . . . . . . . . . . . . 253<br />

17.15 Paket org.pgportal.ejb.userAccount (Benutzerkonto-Objekte) . . . . 254<br />

17.16 GUI: Portlet-Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255<br />

17.17 Pakete org.pgportal.portlet und org.pgportal.portlet.util . . . . 256<br />

17.18 GUI: Vergleich <strong>der</strong> Gesamt<strong>an</strong>sicht, siehe Abb. 16.23 . . . . . . . . . . . . 256<br />

17.19 GUI: Vergleich <strong>der</strong> Einfachen Suche . . . . . . . . . . . . . . . . . . . . . 257<br />

17.20 GUI: Vergleich <strong>der</strong> Ergebnis-Anzeige, siehe Abbildung 16.27 . . . . . . . 257<br />

17.21 GUI: Vergleich <strong>der</strong> Detail<strong>an</strong>sicht <strong>ein</strong>es Ergebnisses, siehe Abbildung 16.28 258<br />

17.22 GUI: Vergleich <strong>der</strong> Einstellungen . . . . . . . . . . . . . . . . . . . . . . 259<br />

17.23 GUI: Vergleich <strong>der</strong> Dokumentenübersicht, siehe Abbildung 15.10 . . . . . 260<br />

17.24 GUI: Portlet Suchchronik . . . . . . . . . . . . . . . . . . . . . . . . . . . 261<br />

17.25 GUI: Ausschnitt aus <strong>der</strong> Hilfe . . . . . . . . . . . . . . . . . . . . . . . . 261<br />

18.1 Einfache Suche, Eingabefeld <strong>der</strong> Suche . . . . . . . . . . . . . . . . . . . 264<br />

18.2 Einfache Suche, Denition des Suchraums . . . . . . . . . . . . . . . . . . 265<br />

18.3 Erweiterte Suche, verschiedene Kategorien: Titel, Autor und Schlagwort . 265<br />

18.4 Erweiterte Suche, Deniton des Suchraums . . . . . . . . . . . . . . . . . 266<br />

18.5 Erweiterte Suche, ndbare Medientypen . . . . . . . . . . . . . . . . . . . 266<br />

18.6 Such-Chronik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267<br />

297


Abbildungsverzeichnis<br />

18.7 Ergebnis<strong>an</strong>zeige, Statistiken . . . . . . . . . . . . . . . . . . . . . . . . . 267<br />

18.8 Ergebnis<strong>an</strong>zeige, aufgeklapptes Ergebnis . . . . . . . . . . . . . . . . . . 268<br />

18.9 Benutzerkonto, Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . 268<br />

18.10 Benutzerkonto, Mahngebühren . . . . . . . . . . . . . . . . . . . . . . . . 269<br />

18.11 Benutzerkonto, selbst ausgeliehene Dokumente . . . . . . . . . . . . . . . 269<br />

18.12 Benutzerkonto, eigene Vormerkungen . . . . . . . . . . . . . . . . . . . . 270<br />

18.13 Benutzerkonto, persönliche Daten . . . . . . . . . . . . . . . . . . . . . . 270<br />

18.14 Navigation, Ausg<strong>an</strong>gszust<strong>an</strong>d . . . . . . . . . . . . . . . . . . . . . . . . 271<br />

18.15 Navigation, Zust<strong>an</strong>d nach Wahl <strong>ein</strong>er Hauptseite . . . . . . . . . . . . . . 271<br />

18.16 Reiter innerhalb <strong>der</strong> Seiten . . . . . . . . . . . . . . . . . . . . . . . . . . 271<br />

B.1 Die Helden des Tages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286<br />

298


Tabellenverzeichnis<br />

7.1 Im Portlet-API denierte Fensterzustände . . . . . . . . . . . . . . . . . 73<br />

16.1 Klasse SearchBe<strong>an</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198<br />

16.2 Klasse UricaSRURessource . . . . . . . . . . . . . . . . . . . . . . . . . . 207<br />

16.3 Klasse SRUWrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208<br />

16.4 Klasse SRUParser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208<br />

16.5 Klasse CiteSeerRessource . . . . . . . . . . . . . . . . . . . . . . . . . . . 209<br />

16.6 Klasse CiteSeerWrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . 209<br />

16.7 Klasse HibernateUtil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210<br />

16.8 Klasse UserAccountBe<strong>an</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . 210<br />

16.9 Allgem<strong>ein</strong>e JSPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227<br />

16.10 Such-Portlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227<br />

16.11 Benutzerkonto-Portlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227<br />

16.12 Lesezeichen-Portlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227<br />

16.13 Hilfe-Portlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227<br />

16.14 Önungszeiten-Portlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228<br />

16.15 Entität UserAccount . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228<br />

16.16 Entität SearchHistory . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229<br />

299


Listings<br />

7.1 Deployment-Deskriptor mit Portlet-Preferences . . . . . . . . . . . . . . . 74<br />

7.2 Deployment-Deskriptor mit User-Attributes . . . . . . . . . . . . . . . . . 75<br />

7.3 Deployment-Deskriptor portlet.xml . . . . . . . . . . . . . . . . . . . . . . 76<br />

7.4 Deployment-Deskriptor web.xml . . . . . . . . . . . . . . . . . . . . . . . . 77<br />

9.1 Beispiel: Original MARC (Ausschnitt) . . . . . . . . . . . . . . . . . . . . 96<br />

9.2 Beispiel: MARCXML Inst<strong>an</strong>ce (Ausschnitt) . . . . . . . . . . . . . . . . . 96<br />

9.3 Beispiel: Dublin Core Tr<strong>an</strong>sformation (Gesamtes Dokument) . . . . . . . . 96<br />

13.1 Beispiel: Publikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133<br />

13.2 Beispiel: MARC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133<br />

13.3 Beispiel: MARCXML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133<br />

13.4 Beispiel: MODS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134<br />

13.5 Beispiel: EAD-Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134<br />

13.6 Beispiel: OAI An<strong>fr</strong>age . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137<br />

13.7 Beispiel: OAI Antwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137<br />

13.8 Beispiel: METS Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138<br />

300


Literaturverzeichnis<br />

[AH03] Abdelnur, A. ; Heppner, S.: Java Portlet Specication Version<br />

1.0. Version: 2003. http://jcp.org/aboutJava/communityprocess/final/<br />

jsr168/index.html, Abruf: 08.04.2006<br />

[Arm99] Arms, William (Hrsg.): Digital Libraries. Version: 1999. URL:http:<br />

//www.cs.cornell.edu/wya/DigLib/MS1999/Chapter10.html, Abruf:<br />

14. April. 2006<br />

[Arm00] Arms, William Y.: Digital Libraries. M.I.T. Press, 2000<br />

[BL96]<br />

[BO]<br />

Berners-Lee, Tim: WWW: Past, Present, <strong>an</strong>d Future. In: IEEE Computer<br />

29 (1996), Nr. 10, S. 6977<br />

BR-Online (Hrsg.): Geheimnisse des Projektm<strong>an</strong>agements. http://www.<br />

br-online.de/wissen-bildung/thema/projektm<strong>an</strong>agement/index.xml ,<br />

Abruf: 04.06.2005<br />

[Bra99] Braunschweig, UB (Hrsg.): Was sind und was sollen Bibliothekarische<br />

Datenformate. Version: 1999. URL:http://www.allegro-c.de/formate/<br />

formate.htm, Abruf: 14. April. 2006<br />

[Che76]<br />

[DH03]<br />

Chen, Peter P.: The Entity-Relationship Model - Toward a <strong>Uni</strong>ed View of<br />

Data. In: ACM Tr<strong>an</strong>sactions on Database Systems 1 (1976), Nr. 1, S. 936<br />

Dunkel, Jürgen ; Holitschke, Andreas: Softwarearchitektur für die Praxis.<br />

Springer, Berlin, 2003. ISBN 3540002219<br />

[diea] dieDeutscheBibliothek (Hrsg.): MAB. URL:http://www.ddb.de/<br />

st<strong>an</strong>dardisierung/formate/mab.htm, Abruf: 14. April. 2006<br />

[dieb] dieDeutscheBibliothek (Hrsg.): MABxml. URL:http://www.ddb.de/<br />

st<strong>an</strong>dardisierung/formate/mabxml.htm, Abruf: 14. April. 2006<br />

[DLWZ03] Dumke, R<strong>ein</strong>er ; Lother, Mathias ; Wille, Cornelius ; Zbrog, Fritz: Web<br />

Engineering. Pearson Studium, 2003<br />

[Fri96]<br />

Friedrich, Marc: Entwurf und Implementierung von Verfahren zur Bestimmung<br />

von Textinhalten aus Verkehrsmeldungen für die Überführung in das<br />

digitale RDS-TMC-Format, Technische Hochschule Darmstadt, Diplomarbeit,<br />

1996. http://www.smile-datentechnik.de/projekte/dipl/index.html<br />

301


Literaturverzeichnis<br />

[GGSB98] Gill, T. ; Gillil<strong>an</strong>d-Sweetl<strong>an</strong>d, A. ; Baca, M.: Introduction to Metadata<br />

- Pathways to Digital Information. Getty Information Institute, 1998<br />

[GM01]<br />

[Has00]<br />

Ginige, Athula ; Muruges<strong>an</strong>, S<strong>an</strong>: Guest Editors' Introduction: The Essence<br />

of Web Engineering - M<strong>an</strong>aging the Diversity <strong>an</strong>d Complexity of Web<br />

Application Development. In: IEEE MultiMedia 8 (2001), Nr. 2, S. 2225<br />

Hasselbring, Wilhelm: Information system integration. In: Communications<br />

of the ACM 43 (2000), Juni, Nr. 6, 3238. http://www.acm.org/pubs/<br />

citations/journals/cacm/2000-43-6/p32-hasselbring/. ISSN 0001<br />

0782<br />

[Ini] Initiative, Dublin Core M. (Hrsg.): Dublin Core Metadata Element Set.<br />

URL:http://www.dublincore.org/documents/dces/, Abruf: 14. April. 2006<br />

[Ker04a] Kerpen, C.: Mach auf das Tor! In: JavaMagazin 10/04 (2004)<br />

[Ker04b]<br />

[Knu73]<br />

Kerpen, Claus: JSR 168, die Portlet-Spezikation. Software Support Verlag<br />

GmbH, 2004<br />

Knuth, Donald E.: The Art of Computer Programming. Addison-Wesley,<br />

1973<br />

[KPRR04] Kappel, Gerti ; Pröll, Birgit ; Reich, Sieg<strong>fr</strong>ied ; Retschnitzegger, Werner:<br />

Web Engineering: Systematische Entwicklung von Web-Anwendungen.<br />

dpunkt.verlag, 2004<br />

[Lev66]<br />

Levensht<strong>ein</strong>, V.I.: Binary codes capable of correcting deletions, insertions<br />

<strong>an</strong>d reversals. In: Sov. Phys. Dokl. 6 (1966), S. 707710<br />

[LM04a] Linwood, J. ; Minter, D.: Building Portals with the Java Portlet API.<br />

Apress, 2004<br />

[LM04b]<br />

[LOCa]<br />

[LOCb]<br />

[Mar02]<br />

[MEH01]<br />

Linwood, Je ; Minter, Dave: Building Portals with the Java Portlet API.<br />

Springer Verlag, 2004<br />

LOC (Hrsg.): MARC 21 - MAchine Readable Catalog. http://www.loc.gov/<br />

marc/faq.html#definition, Abruf: 16.04.2006<br />

LOC (Hrsg.): METS - Metadata Encoding <strong>an</strong>d Tr<strong>an</strong>smission St<strong>an</strong>dard. http:<br />

//www.loc.gov/st<strong>an</strong>dards/mets/, Abruf: 16.04.2006<br />

Marinescu, Floyd: EJB Design Patterns: Adv<strong>an</strong>ced Patterns, Processes, <strong>an</strong>d<br />

Idioms. Wiley, 2002<br />

Maier, Mark W. ; Emery, David E. ; Hilliard, Rich: Software Architecture:<br />

Introducing IEEE St<strong>an</strong>dard 1471. In: IEEE Computer 34 (2001), Nr. 4, 107<br />

109. http://dlib.computer.org/co/books/co2001/pdf/r4107.pdf<br />

[Mic03] Microsystems, Sun (Hrsg.): Introduction to JSR 168 - The Portlet<br />

Specication. Version: 2003. http://developers.sun.com/prodtech/<br />

portalserver/reference/techart/jsr168/pb_whitepaper.pdf, Abruf:<br />

04.04.2006<br />

302


Literaturverzeichnis<br />

[MS97]<br />

[Pay]<br />

Mitchell, W.I. ; Strimpel, O.: There <strong>an</strong>d not there. In Denning <strong>an</strong>d Metcalfe.<br />

(1997)<br />

Payer, Margarete: Digitale Bibliothek: Biblioteca digital. http://www.payer.<br />

de/<strong>ein</strong>zel/digitalebolivien.htm, Abruf: 12.04.2006<br />

[Ric04] Richardson, W.C.: Portal Development with Open Source Tools. Wrox<br />

Press, 2004<br />

[RS77]<br />

Reth, H<strong>an</strong>s-Peter von ; Schek, H<strong>an</strong>s-Jörg: Eine Zugrismethode für die<br />

phonetische Ähnlichkeitssuche / Wissenschaftliches Zentrum Heidelberg. 1977.<br />

Forschungsbericht<br />

[Sel] Selfhtml (Hrsg.): Web-Projektverwaltung. http://de.selfhtml.org/<br />

projekt/pl<strong>an</strong>en.htm, Abruf: 04.01.2005<br />

[Som01] Sommerville, I<strong>an</strong>: Software Engineering. 6th. Pearson Studium, 2001<br />

[SSNM97] Schmidt, Joachim W. ; Schrö<strong>der</strong>, Gerald ; Nie<strong>der</strong>ée, Claudia ; Matthes,<br />

Flori<strong>an</strong>: Linguistic <strong>an</strong>d Architectural Requirements for Personalized Digital<br />

Libraries. In: Int. J. on Digital Libraries 1 (1997), S. 89104<br />

[Sto04]<br />

Stoy<strong>an</strong>, R.: M<strong>an</strong>agement von Webprojekten - Führung, Projektpl<strong>an</strong>, Vertrag.<br />

Springer Verlag, 2004<br />

[Sun04] Sun Microsystems, Inc.: J2EE, Enterprise JavaBe<strong>an</strong>s Technology. (2004).<br />

http://java.sun.com/products/ejb/, Abruf: 16. April 2006<br />

[Sun05]<br />

[SW02]<br />

[TO]<br />

Sun Microsystems, Inc.: Java 2 Platform, Enterprise Edition (J2EE) Overview.<br />

(2005). http://java.sun.com/j2ee/appmodel.html, Abruf: 16. April<br />

2006<br />

Sneed, Harry M. ; Winter, Mario: Testen objektorientierter Software. H<strong>an</strong>ser,<br />

2002<br />

T-Online (Hrsg.): Web-Projektpl<strong>an</strong>ung. http://www3.t-online-business.<br />

de/dyn/c/12/88/60/1288600.html, Abruf: 04.06.2005<br />

[vir] virtualuniversity (Hrsg.): M<strong>an</strong>agement. http://www.<br />

virtualuniversity.ch/m<strong>an</strong>agement/index.html, Abruf: 04.01.2005<br />

[W3C]<br />

W3C (Hrsg.): World Wide Web Consortium (W3C). http://www.w3.org,<br />

Abruf: 06.04.2006<br />

[WCa] Wikipedia-Community (Hrsg.): Denition: Digital Subscriber Line<br />

(DSL). http://de.wikipedia.org/wiki/Digital_Subscriber_Line, Abruf:<br />

15.04.2006<br />

[WCb] Wikipedia-Community (Hrsg.): Denition: R<strong>an</strong>gordnung. http://de.<br />

wikipedia.org/wiki/R<strong>an</strong>gordnung, Abruf: 23.01.2006<br />

[WCc] Wikipedia-Community (Hrsg.): Denition: Suchfunktion. http://de.<br />

wikipedia.org/wiki/Suchfunktion, Abruf: 23.01.2006<br />

303


Literaturverzeichnis<br />

[WCd]<br />

[WCR04]<br />

Wikipedia-Community (Hrsg.): Denition: World Wide Web. http://de.<br />

wikipedia.org/wiki/World_Wide_Web, Abruf: 13.04.2006<br />

W. Clay Richardson, Joe Vitale Peter Len und Kevin T. S. Donald Avondolio<br />

A. Donald Avondolio: Professional Portal Development with Open Source<br />

Tools: Java Portlet API, Lucene, James, Slide. Wiley Technology Publishing,<br />

2004<br />

304

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!