Was ist ein Repository?

Ein Repository ist ein digitales Archiv für Informationen und Daten zu einem bestimmten Fachgebiet. Der Begriff Repository stammt aus dem Bereich der Softwaretechnik und Softwareengineering.

Repository – Digitales Verzeichnis fuer Objekte

Das Repository ist meist ein digital verwaltetes Verzeichnis zur Speicherung und Beschreibung von Objekten. Bei Repositories handelt es sich um Werkzeuge für die zentrale Ablage von Daten, Dokumenten, Objekten und Programmen mit ihren Metadaten. Eine solche Repository-Datenbank ermöglicht somit die systematische Ablage von Programmcode, Code-Fragmenten, Modellen und deren Bestandteilen.

Neben den eigentlichen Daten werden im einem digitalen Repository-Archiv auch die verschiedenen Versionen, Konzeptionen und deren Entwicklungen abgelegt, wodurch alle abgelegten Softwarebausteine mit allen relevanten Informationen gespeichert werden.

Arten von Repositories und ihre Nutzung

Es wird zwischen verschiedenen Arten von Repositories wie Code-Repositories, Daten-Repositories, Dokumenten-Repositories unterschieden. Anbei eine Übersicht mit Beispielen und Nutzungsszenarien für jede Art:

Code-Repositories

  • Definition: Speichern und verwalten Quellcode und damit verbundene Dateien für Softwareprojekte.
  • Beispiele: GitHub, GitLab, Bitbucket.
  • Nutzungsszenarien: Wird von Softwareentwicklungsteams verwendet, um Code zu speichern, zu verfolgen und zusammenzuarbeiten, insbesondere bei der Verwendung von Versionskontrollsystemen wie Git.

Daten-Repositories

  • Definition: Dienen der Speicherung, Verwaltung und dem Austausch großer Datensätze.
  • Beispiele: Datenbank-Repositories wie MySQL, PostgreSQL; spezialisierte Daten-Repositories wie CKAN für öffentliche Daten.
  • Nutzungsszenarien: Wichtig für Unternehmen und Organisationen, die große Mengen an Daten verwalten, z.B. für Analysezwecke, Berichterstattung oder Forschung.

Dokumenten-Repositories

  • Definition: Zentralisierte Systeme zur Speicherung und Verwaltung von Dokumenten und anderen Medien.
  • Beispiele: Microsoft SharePoint, Google Drive.
  • Nutzungsszenarien: Eingesetzt in Unternehmen und Organisationen zur Speicherung von Dokumenten, Kollaboration und Dokumentenverwaltung, oft mit Funktionen für das Dokumentenlebenszyklusmanagement und Zugriffskontrollen.

Jede dieser Arten von Repositories spielt eine wichtige Rolle in ihrem jeweiligen Anwendungsbereich und trägt zur Effizienz, Sicherheit und Organisation der Daten- und Informationsverwaltung bei.

Interaktionsfluss in einem Repository

Interaktionsfluss in einem Repository

Technische Funktionsweise von Repositories:

Die technische Funktionsweise von Repositories und der Unterschied zu herkömmlichen Datenbankmanagementsystemen kann wie folgt erläutert werden:

Speicherung und Versionskontrolle

Repositories speichern Daten, Dokumente oder Code und deren Historie. Sie verwenden oft ein Versionskontrollsystem (VCS), das Änderungen an den Dateien überwacht und die Möglichkeit bietet, zu früheren Versionen zurückzukehren.

Zugriffsmanagement

Sie bieten Mechanismen zur Verwaltung von Zugriffsrechten, um festzulegen, wer Dateien lesen, bearbeiten oder löschen darf.

Branching und Merging

Insbesondere in Code-Repositories können Benutzer parallele Versionen (Branches) erstellen und später Änderungen zusammenführen (Merging).

Integration mit Entwicklungs-Tools

Sie sind oft in Entwicklungs- und Deployment-Tools integriert, um Continuous Integration und Continuous Deployment zu ermöglichen.

Repository versus Database

Repository versus Database

Unterschiede zu herkoemmlichen Datenbankmanagementsystemen

Im Unterschied zu herkömmlichen Datenbankmanagementsystemen, die primär für die Speicherung und Abfrage strukturierter Daten konzipiert sind, sind Repositories spezialisiert auf die Versionskontrolle und das Management von Änderungen. Während Datenbanken in der Regel Transaktionen und Abfragen in Echtzeit unterstützen, liegt der Fokus bei Repositories auf der langfristigen, nachvollziehbaren Speicherung und Verwaltung von digitalen Assets.

Das Repository zur Aenderungs- und Versionskontrolle von Software

Auf die im Repository-Verzeichnis gespeicherten Daten und Dokumente können autorisierte Nutzer und Autoren flexibel zugreifen und Änderungen vornehmen. Repositories werden primär in der Versionsverwaltung (CVS) von Software sowie im Dokumenten- und Contentmanagement eingesetzt. Die einzelnen Inhalte werden als Komponenten und Objekte klassifiziert und mit Metadaten angereichert.

Grundlegende Funktionen des Repository bestehen in der Speicherung, Versionskontrolle und der Unterstützung beim Abrufen der gespeicherten Modelle und deren zugehörigen Objekten. Die Versionskontrolle wird dazu genutzt verschiedene Versionen von Software und Repository-Objekten zu verwalten. Im Unterschied eines reinen Datenbanksystems besteht darin, dass ein Objekt-Repository ein oft über mehrere Jahre andauende Entwicklungsprozess optimal unterstützt. Im Sinne eines kontrollierten Entwicklungsprozesses von Software können Benutzer einzelne Bestandteile des Repositories für die gleichzeitige Änderung durch andere Anwender sperren. Beim Wiedereinstellen der geänderten Artefakte werden die Sperren aufgehoben. Das dynamische Repository erstellt automatisch eine neue Version des gesamten Softwaremodells. Populäre Repositories gibt es auch für Typo3 und Magento.

Vorteile vom Repositories in der Softwareentwicklung

Für die agile Entwicklung von Software kommt dem Repository besondere Bedeutung zu. Über das Entwicklungs-Repository ist es komfortabel möglich auf alle wiederverwertbaren Programmbausteine zugreifen. Leicht verständliche Code-Strukturen, eine für jeden verfügbare Dokumentation und die deutliche Reduzierung von Entwicklungszeiten sind dabei nur die größten Vorteile die für die konsequente Nutzung von Repositories sprechen.

Der Softwareentwickler hat über das Software-Repository nicht nur permanenten Zugriff auf die Funktionsbeschreibung, die Schnittstellenspezifikationen und den Programmcode. Auch die parallele Zusammenarbeit verschiedener Entwickler in agilen Teams wird durch ein modernes Code-Repository erst möglich. GitHub und GitLab sind besonders beliebte Repository-Werkzeuge und bewährte Tools für agile Softwareentwicklung.

Ähnliche Eintraege