Zurück zum Blog

Git für Felddaten

In der Softwareentwicklung wurde das Problem der gleichzeitigen Bearbeitung bereits vor langer Zeit durch Staging, Committing, Konfliktprüfungen und Code-Reviews gelöst. Bei Felddaten bestehen dieselben Anforderungen, und Aptli wendet dasselbe Modell an.

version-controlofflineconflict-detectionfield-operations

Das Problem der Parallelität

Seit den 1970er Jahren bearbeiten Softwareentwickler dieselben Dateien gleichzeitig. Wenn zwei Personen dieselbe Funktion ändern, führt der eine seine Änderungen zuerst ein, und der andere erhält einen Merge-Konflikt. Die Versionskontrolle hat dieses Problem so gründlich gelöst, dass jeder Entwickler sie ganz selbstverständlich nutzt: Änderungen vorbereiten, committen, sobald sie fertig sind, und etwaige Überschneidungen beheben, bevor etwas live geschaltet wird.

Die Felddaten weisen dieselbe Struktur auf. Zwei Teams bearbeiten Objekte im selben Gebiet. Das eine befindet sich unterirdisch ohne Internetverbindung, das andere auf der anderen Seite der Stadt mit unzuverlässigem Empfang. Beide stellen die Verbindung wieder her und senden ihre Änderungen. Das System muss die Arbeit beider Teams erfassen und anzeigen, wo sich ihre Aktivitäten überschneiden.

Was die Feldbearbeitung benötigt

Für die Bearbeitung vor Ort sind drei Dinge gleichzeitig erforderlich.

Arbeiten ohne Netzempfang. Ein Team nimmt unter Tage oder außerhalb der Netzreichweite Bearbeitungen vor, und diese werden auf dem Gerät gespeichert, bis die Verbindung wiederhergestellt ist.

Jede Bearbeitung wird beibehalten. Wenn zwei Teams denselben Bereich bearbeiten, bleiben die Ergebnisse beider Teams erhalten, und die Überschneidungen werden angezeigt, bevor etwas endgültig gespeichert wird.

Gemeinsam genutzte Flächen bleiben gemeinsam genutzt. Die Teams arbeiten dort, wo die Arbeit anfällt, und Kreuzungen, Korridore sowie gemeinsam genutzte Infrastruktur bleiben für alle, die sie benötigen, bearbeitbar.

Das Modell der Versionskontrolle

Aptli orientiert sich an der Arbeitsweise von Software-Teams, und die Konzepte lassen sich eins zu eins übertragen.

Das Speichern erfolgt lokal. Die Bearbeitungen eines Außendienstmitarbeiters (Verschieben eines Punktes, Anpassen einer Linie, Aktualisieren von Eigenschaften) werden in einer Arbeitsversion auf dem Gerät gespeichert, ähnlich wie bei der Bearbeitung in einem lokalen Zweig. Die Funktionen „Rückgängig“ und „Wiederherstellen“ gelten für die gesamte Sitzung, und eine Zählung zeigt an, wie viele Änderungen noch ausstehen.

Das Hochladen ist ein Push-Vorgang. Sobald der Worker bereit ist, sendet „Upload“ die Arbeitsversion als einen einzigen Änderungssatz mit einem Zeitstempel und dem Namen des Workers an den Server.

Die Genehmigung erfolgt im Rahmen einer Code-Prüfung. Mit „Einreichen“ wird die Version übermittelt und um Genehmigung gebeten. Ein Genehmiger sieht, was sich wo geändert hat, und führt anschließend entweder ein Commit durch oder sendet die Version mit einer Anmerkung zurück. Die gemeinsam genutzte Karte ändert sich, sobald der Genehmiger ein Commit durchführt.

Konfliktprüfungen sind Zusammenführungsprüfungen. Bevor eine Version übernommen wird, prüft Aptli, ob jemand anderes dieselben Funktionen geändert hat. Eine Überschneidung wird markiert, beide Änderungssätze werden angezeigt, und das Team klärt den Konflikt explizit.

Die Versionshistorie entspricht dem Commit-Protokoll. Jede festgeschriebene Version enthält Angaben dazu, wer sie eingereicht hat, wann dies geschah, was geändert wurde und wer sie genehmigt hat. Eine festgeschriebene Version kann wiederhergestellt werden, wobei die Wiederherstellung wie jede andere Änderung einem Genehmigungsverfahren unterliegt.

Wie das in der Praxis aussieht

Zwei Teams arbeiten am selben Glasfasernetz. Team A ist vor Ort und bearbeitet die Kabeltrassen im nördlichen Abschnitt. Team B arbeitet unterirdisch und bearbeitet die Spleißstellen im zentralen Abschnitt. Beide sind offline.

Team A schließt die Arbeit ab, stellt die Verbindung wieder her und übermittelt seine Version. Niemand sonst hat diese Funktionen geändert. Der Prüfer überprüft die Änderungen an der Kabelverlegung und übernimmt sie.

Team B meldet sich eine Stunde später erneut und übermittelt seine Änderungen. Zwei der Bearbeitungen an den Spleißpunkten überschneiden sich mit Änderungen, die Team A bereits vorgenommen hat, und Aptli weist auf den Konflikt hin. Team B sieht beide Änderungssätze, passt seine Spleißpunkte an die Kabelverläufe von Team A an und übermittelt die Änderungen erneut. Der Genehmiger übernimmt die bereinigte Version.

Beide Besatzungen behalten ihre Aufgaben. Die Abstimmung dauert nur wenige Minuten, und jede Überschneidung wurde bereits vor der Landung erkannt.

Für die Offline-Nutzung konzipiert

Die Netzverbindung bei der Feldarbeit ist unbeständig: in Kellern, Tunneln, auf Landstraßen und auf Baustellen. Ein Feldsystem ist einen Großteil des Tages offline.

Dank der Versionsverwaltung ist dies der Normalzustand. Jede Bearbeitung verbleibt auf dem Gerät, bis der Mitarbeiter die Daten hochlädt. Eine Netzwerkverbindung ist zweimal erforderlich: zum Senden von Änderungen und zum Abrufen der neuesten Daten von anderen. Zwischen diesen Zeitpunkten verfügt der Mitarbeiter über volle Bearbeitungsrechte, und sobald die Verbindung wiederhergestellt ist, wird die Synchronisierung durchgeführt.

Das Modell orientiert sich daran, wie die Arbeit vor Ort abläuft: größtenteils offline, mit gelegentlicher Internetverbindung.

Zusammenfassung

  • Bei Felddaten besteht das Problem der Parallelität, das in der Softwareentwicklung bereits vor Jahrzehnten gelöst wurde: Mehrere Personen bearbeiten dasselbe Objekt, oft ohne Internetverbindung.
  • Die Bearbeitung vor Ort muss auch ohne Empfang funktionieren, wobei jede Änderung gespeichert und auf einer gemeinsamen Basis abgeglichen wird, die stets gemeinsam genutzt bleibt.
  • Das Versionsmodell (lokale Speicherung, Uploads, Freigabe, Konfliktprüfungen, lückenloser Verlauf) lässt sich direkt aus der Softwareentwicklung auf den Feldeinsatz übertragen.
  • Änderungen werden auf dem Gerät gespeichert, bis der Mitarbeiter sie hochlädt. Bei der Übermittlung wird eine Freigabe angefordert, und ein Freigabeverantwortlicher bestätigt die Änderung oder sendet sie mit einer Anmerkung zurück. Konflikte werden offengelegt und müssen explizit gelöst werden.
  • Jede festgeschriebene Version vermerkt den Einreicher, den Zeitpunkt und den Genehmiger; eine festgeschriebene Version kann durch Genehmigung wiederhergestellt werden.
  • Das Modell orientiert sich an den Abläufen der Feldarbeit: größtenteils offline, nur gelegentlich mit Internetverbindung.