Offline first am Edge – Plötzlich zwei Räume

Am äußeren Ende des Internets, dem Edge, gibt es zwar auch eine Datenanbindung, allerdings ist diese vielleicht nicht immer verfügbar. Wenn man diese Tatsache akzeptiert, dann erkennt man schnell, dass man seine Daten möglichst bei sich halten muss. Einen eigenen Graphen aufbauen und verwalten muss, und nicht sich einem anderen Graphen anschließen kann. Vielmehr läd man „die Welt“ mit all ihren Daten zu sich lokal, im Gerät ein und baut diese in seinen eigenen Graphen ein.

Der Anwendungsfall der Autoladung von Alice hat ganz am Anfang den Bedarf einen Zählerstand abzurufen. Sowohl Alice, als auch der Stromzähler, besitzen eine eigene Laufzeitumgebung (vergl. Kapitel Raum und Tisch), d.h. beide Parteien können einen Raum mit einem Tisch schaffen und sie werden auch beide einen Raum schaffen, der wie ein Spielbild sein wird, denn der Graph setzt dies voraus.

Sobald Alice den Ladevorgang beginnen möchte, schafft sie zunächst ihren Raum mit einem Tisch und pflegt diesen in ihrem Graphen als Knoten ein. Erst im Anschluss kommuniziert ihre Absicht an den Stromzähler, dass sie einen Zählerstand benötigt. Dieser wiederrum schafft ebenfalls für diesen einen Geschäftsvorfall einen „Raum mit einem Tisch“. Der Vertrag, welcher auszuhandeln ist, ist recht einfach, im Tausch für die Anfrage des Zählerstandes wird der Zählerstand geliefert. Der Zählerstand ist ein Datensatz, somit kann man einen Zeiger darauf setzen und somit auch eine DID. Beide Parteien werden am Tisch aushandeln, dass sie beide unterzeichnen werden, sobald mit Hilfe des Zeigers/Pointer/DID der Zählerstand abrufbar ist. Die Transaktion ist beendet, der Raum kann auf beiden Seiten abgebaut werden. Bei Alice im Graphen bleibt lediglich der Zeiger auf den Datensatz in „Erinnerung“ (und somit im Graphen), genauso beim Stromzähler.

Der Offline-First Ansatz hat dazu geführt, dass jeder eine eigenen Raum aufbauen musste, der für die Aushandlung des Vertrages exakt identisch sein muss. Der Vorteil an dieser Herangehensweise ist, dass selbst bei einer Unterbrechung der Kommunikation mitten im „Geschehen“, diese wieder zu einem späteren Zeitpunkt fortgesetzt werden kann. Leider wird diese Art der Isolation (Raum, der gespiegelt vorhanden ist) nur selten wirklich praktiziert.

Dieser – zugegeben sehr sehr einfache – Geschäftsvorfall hat das Potenzial einer kleinen Optimierung. Sowohl Alice, als auch der Stromzähler haben sich auf die DID geeinigt, die signiert ist. D.h. eine spätere Änderung würde die digitale Unterschrift „brechen“. Anders ausgedrückt, in der Welt von Alice und ihrem Graphen kann es egal sein, was der Stromzähler nun macht, weshalb sie das Dokument/den Vertrag tatsächlich bei sich speichern kann. Diese Speicherung erfolgt nun aber nicht mehr in einer Tabelle, sondern in einem „Cache“, welcher immer ausgelesen wird, wenn Alice die DID „auflöst“, d.h. den Datensatz benötigt. Somit ist auch zu einem späteren Zeitpunkt das „Offline-First“ sichergestellt, d.h. Alice muss nicht mehr an die Quelle (Stromzähler) zurück, um den Zählerstand abzurufen.

Offline first am Edge – So geheim, dass man vergessen kann

Geheimes Lager lautet die Übersetzung für „Cache“ bei Leo. Informatiker würden zwar eher die Alternative „Zwischenspeicher“ nutzen, aber für unseren Anwendungsfall am „Edge“ ist „geheim“ eigentlich besser. Was in diesem „Lager“ passiert und wie es verwaltet wird, geht nur Alice etwas an. Allein sie hat die volle Kontrolle über die dort abgelegten Daten und damit auch über den Platzbedarf für diesen Aufbewahrungsort. Steht ihr sehr viel Speicher zur Verfügung, dann braucht sie nie aufzuräumen und Altes wegzuwerfen. Ist der Speicher allerdings knapp, dann kann sie aufräumen und nicht mehr benötigte Speicherplätze freigeben.

Wir erweitern unseren Anwendungsfall und den Prozess zwischen Alice und dem Stromzähler etwas. Neben den beiden Zählerständen für Beginn und Ende des Ladevorgangs, möchte Alice auch jede Minute den Fortschritt wissen und benötigt hierfür ebenfalls einen Zählerstand. Jede Minute wird somit ein Vertrag abgeschlossen, ein DID erstellt, der Datensatz übertragen und ist schließlich bei Alice verfügbar und anzeigbar. Der Zwischenspeicher wird somit immer etwas voller und kann zunächst nicht aufgeräumt werden.

Nach dem Ende des Ladevorgangs wird Alice ihre Kommunikation mit Bob vornehmen. Hierfür erstellt sie einen neuen Vertrag, der eine neue DID erhält. In diesem Datensatz wird die Referenz des ersten und des letzten Zählerstandes (jeweilige DID) verwendet, die Zwischenstände jedoch nicht. Sollte nun einmal der Zwischenspeicher voll werden, so genügt es alle jemals im Zwischenspeicher abgelegten Datensätze ausgehend vom Ältesten anzuschauen und zu prüfen, ob diese noch in einer erstellten DID referenziert werden. Wird die DID dies nicht, kann der Speicherplatz freigegeben werden.

Der begrenzte Speicherplatz, mit dem man bei einem Edge-Gerät rechnen muss sorgen dafür, dass man automatisch ein Vergessen eingebaut hat (=Retention Policy). Würde mit allen Ladevorgängen in ihrer Summe der Speicher ebenfalls irgendwann vollaufen, so muss man schauen, ob man die Verträge mit Bob, die das Löschen verhinden, nicht „verdichtet“ werden können.

Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Inhalt nicht verfügbar.
Bitte erlauben Sie Cookies, indem Sie auf Übernehmen Sie auf das Banner