Zum Inhalt springen

FORGE · Technik im Detail

Ein Zweig ändert Daten und Ontologie, ohne den Betrieb zu berühren.

Wie FORGE Änderungen an Ontologie, Abbildungen und Transformationen auf einem Zweig rechnet, vergleicht und erst nach Freigabe zusammenführt.

Wer die Ontologie ändert, ändert, wovon Anwendungen, Regeln und Rechte abhängen. FORGE trennt darum Ändern und Betreiben wie die Softwareentwicklung: Eine Änderung entsteht auf einem Zweig, wird dort gerechnet, verglichen und geprüft, und erst eine Freigabe führt sie in die Hauptlinie. Der Betrieb liest währenddessen den unveränderten Stand. So ist der Mechanismus ausgelegt.

Diese Seite beschreibt die Bauweise des Systems. Gebaut sind der Prototyp von Freigabe und Protokoll und der Demonstrator von KALKÜL; den ganzen Stand finden Sie unter Was heute steht.

Auf dieser Seite
  1. 01Ein Zweig ist ein Zeiger
  2. 02Was ein Zweig ändern darf
  3. 03Vergleichen vor dem Zusammenführen
  4. 04Zusammenführen und Konflikte
  5. 05Rechte und Lebensdauer
  6. 06Eckdaten
  7. 07Weiter

Ein Zweig ist ein Zeiger

Ein Zweig ist ein benannter Zeiger auf einen Stand von Ontologie, Abbildungen, Transformationen und Daten. Er entsteht im Augenblick, weil nichts kopiert wird: Er teilt alles mit der Hauptlinie, bis er etwas ändert.

Geschrieben wird nach dem Prinzip Copy-on-Write. Ändert der Zweig ein Objekt oder eine Datei, entsteht nur die geänderte Fassung, alles andere bleibt Verweis auf die Hauptlinie. Das ist der Gedanke von Git, und Tabellenformate wie Apache Iceberg führen Schnappschüsse und benannte Zweige nach demselben Prinzip.

Auch die Hauptlinie ist ein Zeiger, und zwar auf den Stand, den der Betrieb liest. Zusammenführen heißt, diesen Zeiger auf einen geprüften neuen Stand zu setzen, Zurücknehmen heißt, ihn auf den vorigen zu setzen. Beides sind Einträge im Verlauf und keine Eingriffe in Daten.

Hauptlinie und Zweig

Der Zweig geht von einer Version der Hauptlinie aus und wird dort gerechnet. Der Vergleich geht zur Freigabe; erst sie führt den Stand als neue Version in die Hauptlinie.

Zweig in FORGE: Version der Hauptlinie, Zweig, Vergleich, Freigabe, neue VersionDer Zweig geht von einer Version der Hauptlinie aus und wird dort gerechnet. Der Vergleich geht zur Freigabe; erst sie führt den Stand als neue Version in die Hauptlinie.Hauptlinieverzweigtführt zusammenVERSIONVERSIONZWEIGVERGLEICHFREIGABE
  • Knoten: Version, Version, Zweig, Vergleich, Freigabe.
  • Version Hauptlinie Version.
  • Version verzweigt Zweig.
  • Zweig gegen Hauptlinie Vergleich.
  • Vergleich legt vor Freigabe.
  • Freigabe führt zusammen Version.
GRAPH · TYPEN UND BEZIEHUNGEN

Was ein Zweig ändern darf

Auf einem Zweig lassen sich Objekttypen und Eigenschaften ändern, Verknüpfungstypen, Abbildungen von Quellen, Transformationen, Regeln und Handlungstypen. Daten, die dadurch neu entstehen, etwa weil eine Abbildung anders rechnet, werden auf dem Zweig berechnet und dort abgelegt. Die Rohzone und die Quellen bleiben, wie sie sind: Der Zweig liest die Rohzone der Hauptlinie und schreibt sie nicht.

Ein Zweig schreibt nie in eine Quelle. Handlungen, die auf einem Zweig laufen, gehen an eine dafür eingerichtete Übungsumgebung der Quelle oder werden nur als Plan berechnet. Das Rückschreiben in den Betrieb bleibt der Hauptlinie vorbehalten; der Zweig hat dafür kein Recht.

Neue Daten aus den Quellen können dem Zweig weiter zufließen, solange er besteht. Damit der Vergleich nicht unter zwei verschiedenen Datenständen leidet, lässt sich ein Zweig auf einen Stichtag der Rohzone festlegen. Dann ist jeder Unterschied im Vergleich eine Wirkung der Änderung.

Vergleichen vor dem Zusammenführen

FORGE vergleicht Zweig und Hauptlinie auf drei Ebenen. Schema: welche Typen, Eigenschaften und Verknüpfungen sich ändern und ob die Änderung verträglich ist oder eine Migration braucht. Daten: welche Objekte hinzukommen, wegfallen oder in welchen Eigenschaften sich Werte unterscheiden, gezählt und mit Beispielen. Auswirkung: welche Anwendungen, Regeln, Handlungen, Rechte und Abnehmer auf die geänderten Typen verweisen.

Die Auswirkung folgt dem Abhängigkeitsgraphen der Ontologie. Wer eine Eigenschaft entfernt, sieht, welche Regel, die sie liest, ungültig würde, bevor sie es im Betrieb wird. Eine Änderung mit unverträglichen Wirkungen lässt sich nicht freigeben, solange diese Wirkung nicht behandelt ist.

Drei Ebenen des Vergleichs

Unten das Schema mit Typen und Verknüpfungen, darüber die Daten, oben die Auswirkung auf alles, was auf die Typen verweist.

Vergleich in FORGE im Schnitt: Schema, Daten, AuswirkungUnten das Schema mit Typen und Verknüpfungen, darüber die Daten, oben die Auswirkung auf alles, was auf die Typen verweist.AuswirkungWAS DARAUF VERWEISTREGELHANDLUNGABNEHMERDatenHINZU · WEG · ANDERSOBJEKTEIGENSCHAFTSchemaVERTRÄGLICH ODER MIGRATIONTYPVERKNÜPFUNGFOLGT DEM GRAPHEN
  • Auswirkung (was darauf verweist): Regel, Handlung, Abnehmer.
  • Daten (hinzu · weg · anders): Objekt, Eigenschaft.
  • Schema (verträglich oder Migration): Typ, Verknüpfung.
  • folgt dem Graphen: fließt von schema nach auswirkung.
SCHNITT VON VORN

Zusammenführen und Konflikte

Hat sich die Hauptlinie seit der Verzweigung ebenfalls geändert, rechnet FORGE eine Dreiwegezusammenführung gegen den gemeinsamen Ausgangsstand. Änderungen an verschiedenen Teilen fügen sich von selbst. Ändern beide Seiten dieselbe Eigenschaft, denselben Typ oder dieselbe Abbildung unterschiedlich, ist das ein Konflikt, der mit beiden Fassungen vorgelegt wird. Kein Konflikt wird still zugunsten einer Seite entschieden.

Die Freigabe zum Zusammenführen ist ein eigenes Recht und folgt dem Muster der Freigabe: ein signiertes Ja für genau diesen Stand des Zweigs. Ändert sich der Zweig danach, ist das Ja verbraucht, und es braucht ein neues. Beim Zusammenführen laufen die Migrationen, dann steht die neue Version der Ontologie. Die vorige bleibt lesbar, solange Abnehmer sie nennen.

Rechte und Lebensdauer

Ein Zweig erweitert keinen Zugriff. Markierungen und Rechte an Typen und Eigenschaften gelten auf dem Zweig wie in der Hauptlinie; wer ein Feld dort nicht lesen darf, liest es auch im Vergleich nicht. Zweig anlegen, Zweig lesen und Zweig zusammenführen sind drei verschiedene Rechte. Wer ändert, gibt nicht frei.

Zweige haben ein Ablaufdatum. Ein abgelaufener Zweig wird archiviert, bis seine Aufbewahrungsfrist endet. Was nur auf ihm geschrieben wurde, verschwindet dann mit ihm, nie aber Daten der Hauptlinie. So sammeln sich keine vergessenen Zweige an, die Speicher binden und alte Daten mit alten Rechten festhalten.

Eckdaten

Zweig
benannter Zeiger auf Ontologie, Abbildungen, Transformationen und Daten
Schreiben
Copy-on-Write; unveränderte Teile bleiben Verweis auf die Hauptlinie
Rohzone
nur lesend; Stichtag festlegbar
Quellen
werden nie beschrieben; Handlungen nur in einer Übungsumgebung oder als Plan
Vergleich
Schema, Daten, Auswirkung entlang des Abhängigkeitsgraphen
Zusammenführen
Dreiwegezusammenführung, Konflikte mit beiden Fassungen, Freigabe für genau diesen Stand
Zurücknehmen
Zeiger auf die vorige Version, Eintrag im Verlauf
Rechte
anlegen, lesen und zusammenführen getrennt; Markierungen gelten auf dem Zweig wie in der Hauptlinie

Weiter

Welche Änderung an Ihren Datenstrukturen schieben Sie heute auf, weil sie den Betrieb berühren würde? Die spielen wir mit Ihnen auf einem Zweig durch.