Vom monolithischen Programm zu Programmkomponenten

Computerprogramme sind vergleichbar mit Kochrezepten und umfassen eine Folge von Anweisungen, die nacheinander abgearbeitet werden. Einfachere, kleine Programme sind häufig noch überschaubar und somit monolithisch. Sie beinhalten den gesamten Programmcode, der in einer einzigen Datei bereitgestellt wird.

Während zu Beginn der Informationsverarbeitung noch eine Tontafel, ein Holzstab mit Einkerbungen, ein Blatt Papier oder auch nur ein Lochstreifen zur Erfassung einer Folge von Anweisungen ausreichte, passt heutiger Programmcode nur noch selten auf eine einzige Bildschirmseite [Naumann-Abakus-Internet]. Ein Großteil der aktuell genutzten Software ist daher mehrteilig und überaus komplex. Dabei spielen viele, unterschiedliche Komponenten zusammen, erfüllen verschiedene Aufgaben und bedingen einander. Dazu gehören kompilierte Programme, Skripte, Bibliotheken, Daten und Konfigurationsdateien.

Die Paketierung der einzelnen Komponenten folgt eigenen Regeln, deren Konventionen nur zum Teil festgeschrieben sind und sich auch von Distribution zu Distribution etwas unterscheiden. Paketierung der Komponenten am Beispiel von APT zeigt die Zerlegung in einzelne Pakete am Beispiel von APT. Dabei beinhaltet die linke Spalte den generischen Paketnamen ohne Nennung von Versionsnummer und Architektur, die mittlere Spalte die Kategorie, der das Paket zugeordnet ist (siehe Sortierung der Pakete nach Verwendungszweck'' in [sortierung-der-pakete-nach-verwendungszweck]) und die rechte Spalte eine kurze Paketbeschreibung. Auf die genannten Bibliotheken gehen wir genauer in APT und Bibliotheken'' in [apt-und-bibliotheken] ein.

Table 1. Paketierung der Komponenten am Beispiel von APT
Paketname Paketkategorie Komponente und Bedeutung

'apt'

Administration ('admin')

Paketmanager für die Kommandozeile (siehe [apt])

'apt-doc'

Dokumentation ('doc')

Dokumentation zum Paket 'apt'

'apt-transport-https'

Administration ('admin')

APT-Plugin für HTTPS-Support

'apt-utils'

Administration ('admin')

Hilfsprogramme für APT

'libapt-inst'

Bibliotheken ('libs')

Laufzeitbibliothek zum Paketformat

'libapt-pkg'

Bibliotheken ('libs')

Laufzeitbibliothek zur Paketverwaltung

'libapt-pkg-dev'

Bibliotheken zur Entwicklung ('libdevel')

Entwicklerdateien zu 'libapt-pkg'

'libapt-pkg-doc'

Dokumentation ('doc')

Dokumentation zur Laufzeitbibliothek 'libapt-pkg'

'libapt-pkg-perl'

Bibliotheken ('libs')

Laufzeitbibliothek zur Paketverwaltung, Perl-Schnittstelle

Tip
Benennung eines Debianpakets und Paketkategorien

In [benennung-eines-debian-pakets] beleuchten wir die Benennung und Abfolge der Komponenten in den Paketnamen. Eine genaue Auflistung und zur Bedeutung der Paketkategorien lesen Sie in [sortierung-der-pakete-nach-verwendungszweck] nach.

Die Ideen hinter der Zerlegung in einzelne Komponenten sind ganz unterschiedlich und ergeben sich aus der Entwicklung, dem Ausrollen und der nachfolgenden Pflege einer Software. Hauptmotivation ist dabei häufig, nicht das Rad jedes Mal neu erfinden zu müssen und stattdessen bereits bestehende Komponenten zu integrieren, die etabliert sind und bekanntermaßen einen gewissen Qualitätsstandard erfüllen. Im Open-Source-Bereich erfolgt die Entwicklung weltweit verteilt, daher ist hier eine Zerlegung in kleinere Einheiten und ``Bausteine'' häufig von großem Nutzen. Aufgaben und Komponenten können dadurch besser an kleine, spezialisierte Teams verteilt werden.

results matching ""

    No results matching ""