# DSpace (Software)

DSpace ist eine freie Software zum Betrieb eines Dokumentenservers. Sie stellt Werkzeuge zur Erfassung, Speicherung und Weiterverbreitung von digitalen Ressourcen zur Verfügung und wird meist in Universitäten, Bibliotheken und Forschungseinrichtungen für ein „Institutional Repository“ eingesetzt. Dies geschieht oft mit Blick auf die Langzeitverfügbarkeit von digitalen Ressourcen, da DSpace in Anlehnung an das OAIS-Referenzmodell entwickelt wurde und somit architektonisch geeignet ist, Strategien zur Langzeitverfügbarkeit zu entwickeln. DSpace wird unter der BSD-Lizenz verbreitet.

## Geschichte

DSpace ist eine von der Mellon Foundation geförderte Gemeinschaftsentwicklung vom Massachusetts Institute of Technology (MIT) und den HP Labs, der Forschungsabteilung von Hewlett-Packard. Die erste Version wurde im September 2002 veröffentlicht. Im Juli 2007 wurde die DSpace Foundation gegründet, als Reaktion auf die wachsende Verbreitung von DSpace und den Wunsch die gemeinsame Softwareentwicklung durch mehrere Institutionen mit einer dazu passenden Struktur für gemeinsame Entscheidungen zu stärken. 2009 schlossen sich die DSpace Foundation und Fedora Commons, unter der sich die Community der anderen verbreiteten Repositorien-Software Fedora organisiert hatte, als non-for-profit Organisation DuraSpace zusammen. Beide Organisationen unterstützten die Entwicklung von Softwarelösungen für Repositorien, so dass Chancen auf Synergien zwischen beiden Organisationen gesehen wurden. Im Juli 2019 schlossen sich wiederum DuraSpace und Lyrasis zusammen.

## Entwicklung

Das gemeinschaftliche Entwicklungsmodell von DSpace ist dem der Apache Foundation ähnlich. Aus der Gruppe der Anwender rekrutieren sich die Entwickler, somit kann jeder, der den Entwicklungsrichtlinien folgt, zu DSpace beitragen. Es gibt eine Gruppe von Kernentwicklern und Committer. Diese können Änderungen am eigentlichen Quellcode vornehmen. Zudem hat jeder Anwender die Möglichkeit, seine Anregungen, Wünsche und konstruktive Kritik an DSpace zu äußern und so zur Weiterentwicklung beizutragen. Die DSpace Entwicklungs- und Anwendergemeinde tauscht sich über Newsgroups, ein eigenes Wiki und Anwendertreffen aus. Als Plattform für die gemeinschaftliche Entwicklung wird GitHub verwendet. Institutionelle Mitglieder stellen jährliche Mitgliedsbeiträge bereit, die gemeinsame Infrastruktur und Personal wie die technische Leitung der Entwicklung finanzieren. Die Mitglieder wählen Repräsentanten in die DSpace Leadership Group, die die DSpace Steering Group wählt. Beide Gruppen lenken gemeinsam die Entwicklung der Community und der Software und treffen die strategischen Entscheidungen zu DSpace. Beide Gruppen arbeiten dabei mit der DSpace Committer Group zusammen.

## Architektur

DSpace hat eine 3-Schichten-Architektur:

### Anwendungsschicht (Application Layer)

    die Anwendungsschicht umfasst die Komponenten, mit denen eine DSpace-Instanz mit der Außenwelt kommuniziert, zum Beispiel Webschnittstelle, OAI-PMH-Schnittstelle.

### Geschäftslogik (Business Logic Layer)

    diese Schicht verwaltet Inhalt, Benutzer und Gruppen, Rechte und Geschäftsgänge.

### Speicherung (Storage Layer)

    diese Schicht kümmert sich um die physikalische Speicherung von Metadaten und Inhalt.
Mit DSpace 7, das im August 2021 erschien, wurde dieses Modell um eine REST-API und eine von der übrigen Software losgelöste Weboberfläche ergänzt. Ab DSpace 7 verfügt die REST-API von DSpace erstmals über alle Funktionen, über die auch die Weboberfläche verfügt. Die Weboberfläche, die mit DSpace 7 ausgeliefert wird, wurde in Angular geschrieben und kommuniziert mit dem Backend ausschließlich über REST. DSpace ist damit die erste Software für Dokumentenserver, die über eine dynamische und moderne Weboberfläche verfügt.

## Technik

Bis einschließlich DSpace 6 wurde DSpace in Java und JSP unter Verwendung des Java Servlet Framework geschrieben. Seit Version 7 wird für die Oberfläche Angular eingesetzt. DSpace verwendet im Backend eine relationale Datenbank und unterstützt zurzeit PostgreSQL und Oracle.

### Systemvoraussetzungen

* Unix-Betriebssystem oder Windows
* Java JDK 7 oder 8 (OpenJDK oder Oracle JDK)
* Apache Ant 1.8 oder höhere Version
* Apache Maven 3.0.5 oder 3.3.9 und höher
* Datenbank: PostgreSQL 9.4 (oder höher), oder Oracle 10
* Servlet Container: Jakarta Tomcat 7 und höher, Jetty oder Caucho Resin oder ähnlich

## Funktionalität
### Datenmodell

Die Art, in der Daten in DSpace organisiert sind, spiegelt die Struktur einer Organisation wider. Die Einheiten sind:
* Bereiche (Communities)
* Teilbereiche (Subcommunities)
* Sammlungen (Collections)
* Dokumente (Items), die aus Bündeln von Dateien und Metadaten bestehen
* Bündel (Bundles)
** ORIGINAL – enthält die ursprünglich eingereichten Dateien.
** THUMBNAILS – enthält generierte Vorschauminiaturen von eingereichten Bildern, zur Anzeige in Übersichten.
** TEXT – speichert extrahierten Text aus den eingereichten Dateien
** LICENSE – sichert den Lizenzvertrag zwischen Einreichenden und den Betreibern des Dokumentenservers
** CC LICENSE – Creative-Commons-Lizenz, falls die Ressource unter solcher veröffentlicht wurde
Bereiche und Teilbereiche sind Container für Teilbereiche und Sammlungen. Sammlungen sind Container für Dokumente. Ein Dokument setzt sich aus einem Metadatensatz und Dateien zusammen. Die Dateien werden in Bündeln organisiert. Nicht alle Bündel sind für den Benutzer sichtbar.

### Metadaten

DSpace enthält zu jedem Dokument deskriptive, administrative und strukturelle Metainformationen. DSpace fasst Metadaten als Felder auf, die in Metadatenschemata zusammengefasst werden. In DSpace können beliebig viele Metadatenschemata und -felder angelegt werden, solange die Metadatenschemata der Struktur von Qualified Dublin Core entsprechen. Das bedeutet, ein Metadatenfeld wird anhand des Schemas, zu dem des gehört, eines Elements und optional eines Qualifiers identifiziert. Das Feld dc.contributor.author, das den Autor eines Feldes erfasst, gehört zum Beispiel dem Metadatenschema dc, was für Dublin Core steht, an, und wird durch das Element contributor näher eingegrenzt. Der Qualifier author grenzt es zum Beispiel gegenüber dem Feld dc.contributor.editor ab, das die Herausgeber erfasst. Zusammengesetzte Felder und hierarchisches Metadatenschema lassen sich in DSpace bislang nicht abbilden. Seit DSpace 5 wird ein Metadatenschema local ohne Felder ausgeliefert, um deutlich zu machen, dass nicht nur weitere Metadatenfelder, sondern auch weitere Schemata angelegt werden können. Damit soll verhindert werden, dass zusätzliche Felder im per default genutzten Schema dc angelegt werden, die nicht Dublin Core entsprechen. Seit DSpace 5.0 ist es möglich Metadaten zu allen Objekten zu speichern, also nicht nur zu Items, sondern zum Beispiel auch zu Communities und Collections. Während das im Backend unterstützt wird, gibt es im Frontend noch keine Möglichkeit beliebige Metadatenfelder für alle Objekte einzugeben und anzuzeigen. Intern wird von diesen Möglichkeiten jedoch für verschiedene technische Metadaten zunehmend gebrauch gemacht.

### Benutzer und Gruppen
#### Benutzer

Benutzer werden in DSpace benötigt, wenn jemand eine besondere Rolle übernehmen will:
* Administration,
* Veröffentlichung von Dokumenten,
* Bearbeitung von Dokumenten im Rahmen des Geschäftsgangs,
* Supervision
und wenn man den Neuerscheinungsdienst benutzen will. Der Benutzer registriert sich mit seiner E-Mail-Adresse selbst und verwaltet auch seine Daten und sein Passwort. Der Systemadministrator kann in die Benutzerverwaltung eingreifen, Benutzer hinzufügen, löschen und bearbeiten, jedoch keine Passwörter vergeben.

#### Gruppen

Benutzer können zu Gruppen zusammengefasst werden. Diesen Gruppen können wie auch einzelnen Benutzern Rechte und Aufgaben zugewiesen werden. Als besondere Gruppen gibt es die Administratorengruppe und die Gruppe Anonymous. Per default ist jeder Benutzer, der sich nicht am System anmeldet, der Gruppe Anonymous zugeordnet. Gruppen können Benutzer und Gruppen enthalten.

### Rechteverwaltung

DSpace Rechtesystem assoziiert Aktionen auf Objekte mit Benutzern und Gruppen. Objekte sind hierbei:
* Bereiche und Teilbereiche,
* Sammlungen,
* Dokumente,
* Bündel,
* einzelne Dateien.
Aktionen beziehen sich auf das Hinzufügen, Löschen, Bearbeiten und Lesen dieser Objekte. Durch diese Trennung ist es zum Beispiel möglich, dass die Metadaten zu einem Dokument für alle sichtbar sind, während die zum Dokument gehörigen Dateien nur einem eingeschränkten Benutzerkreis zur Verfügung stehen.

### Akzession und Geschäftsgänge

Dokumente können per Stapelverarbeitung (Batch-Import) oder einzeln über das Webinterface eingespielt werden. Das Einspielen eines Dokumentes ist ein Prozess, in dem das Dokument automatisch, zum Beispiel durch das Hinzufügen von Metadaten wie Zeitstempeln, bearbeitet wird. Zudem können Dokumente Geschäftsgänge durchlaufen, bei denen Dokumente zum Beispiel von bestimmten Benutzern freigegeben oder bearbeitet werden.

### Dateiformate

Prinzipiell ist es möglich, Dateien aller Formate in DSpace zu speichern und zu veröffentlichen. Jede Datei wird dabei mit einem Dateiformat assoziiert, zu dem ein Unterstützungsgrad in DSpace hinterlegt sein kann. Die Dateiformate, welche in einer Instanz verwendet werden können, werden vom Systemadministrator in einer Dateiformatreferenzliste gepflegt, diese enthält:
* MIME Type,
* Bezeichnung,
* Beschreibung,
* Unterstützungsgrad,
* Kennzeichnung als intern,
* Extensionen, mit denen dieser Typ verbunden wird.
Der Unterstützungsgrad soll dabei angeben, wie geeignet ein Format in Bezug auf die Möglichkeit zur Langzeitarchivierung gehalten wird.
Somit kann man steuern, welche Dateiformate zugelassen werden. Dateiformate, die nicht in der Liste auftauchen oder dort enthalten, aber als intern gekennzeichnet sind, können nicht über die Webschnittstelle veröffentlicht werden. Zudem enthält die Referenzliste den Unterstützungsgrad, den die Einrichtung für das Format gewährleistet:

#### Unterstützt

    das Format ist bekannt. Die betreibende Einrichtung ist zuversichtlich die Inhalte langfristig verfügbar machen zu können.

#### Bekannt

    das Format ist bekannt. Die betreibende Einrichtung gewährleistet, dass die Dateien, so wie sie sind erhalten werden. Über die Langfristverfügbarkeit der enthaltenen Information kann keine Aussage getroffen werde. Es wird sich jedoch bemüht genügend Informationen über das Format zu erhalten, um den Unterstützungsgrad zu erhöhen und es langfristig verfügbar zu machen.

#### Unbekannt

    das Format ist unbekannt. Die betreibende Einrichtung gewährleistet, dass die Dateien unverändert erhalten bleiben.

### Persistent Identifier – DOIs und Handles

DSpace verwendet das Handle-System der CNRI, um seine Ressourcen (Bereiche, Teilbereiche, Sammlungen, Dokumente, Bündel und Dateien) mit persistenten Identifiern zu versehen. Nicht jede DSpace-Instanz benötigt eine eigene Kennung (prefix) der CNRI. Allerdings ist eine solche Kennung Voraussetzung, damit DSpace gültige Handles erzeugen kann. Wird keine Kennung beantragt, verwendet DSpace den Prefix 123456789 anstatt eines gültigen Handle-Prefix.
Seit der Version 4 ist es möglich, in DSpace DOIs automatisiert generieren und registrieren zu lassen. Ab Version 7.1 werden sich Regeln konfigurieren lassen, anhand derer entschieden wird, ob eine DOI für ein Dokument erzeugt und registriert werden soll oder nicht. Bis dahin war es nur möglich für alle neue Dokumente DOIs zu erzeugen.

### Suchen und Browsen

Der Inhalt von DSpace wird dem Benutzer durch verschiedene Funktionalitäten erschlossen.

#### Suche

Zum Erzeugen von Indices und dem Durchsuchen selbiger benutzt DSpace die Suchmaschine Solr. Dabei werden die aus den Metadaten und den Volltexten extrahierten Textelemente durchsucht.

#### Browsen

Als weiteren Einstieg kann der Benutzer im Bestand nach Titeln, Autoren und Datum browsen. Die Auflistung der Dokumente ist abhängig von der Hierarchieebene, in der sich der Benutzer befindet. Die Metadatenfelder, anhand derer Browsing angeboten wird, sind in DSpace konfigurierbar.

### Neuerscheinungsinformationsdienst

Jeder in DSpace angemeldete Benutzer hat die Möglichkeit, sich über Neuerscheinungen in von ihm ausgewählten Sammlungen per E-Mail informieren zu lassen.

### Sonstige Funktionalitäten
#### OAI-PMH

    DSpace unterstützt das OAI-PMH-2.0-Protokoll.

#### openURL

    DSpace unterstützt das openURL-Protokoll von SFX.

#### Creative Commons

    DSpace unterstützt den Einsatz von Creative-Commons-Lizenzen

#### Prüfsummen

    DSpace setzt Prüfsummen zur Sicherung der Authentizität der Dokumente ein

#### Datenimport bzw. -export

    Daten können im Stapelverarbeitungsbetrieb im- und exportiert werden

## Verbreitung

DSpace findet immer mehr Verbreitung. Ursprünglich wurde es fast ausschließlich im englischsprachigen Raum eingesetzt. Im Zuge der Internationalisierung von DSpace nach i18n wurde es nicht-englischsprachigen Anwendern wesentlich leichter DSpace einzusetzen. Zurzeit gibt es 2773 Installationen in 130 Ländern (Stand: 12. September 2019).
In Deutschland wurde 2018 das DSpace-Konsortium Deutschland gegründet. Im Jahr 2021 waren 36 Organisationen, die DSpace einsetzen, Mitglied im Konsortium. Ziele des Konsortiums sind es die Zahlung der Mitgliedsbeiträge in die USA für deutsche Organisationen zu vereinfachen, Bedürfnisse und Anforderungen der deutschen Nutzenden in der DSpace Leadership Group zu vertreten und zur Entwicklung von DSpace insbesondere auch finanziell beizutragen.