Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Aki's Vibes
#28
Clean Architecture, OpenSim und warum akisim/akigrid einen Neuanfang wagen

Ein Haus braucht ein Fundament – Software auch

Stell dir vor, du baust ein Haus. Du würdest nicht zuerst die Tapete aussuchen und dann
schauen, ob die Wände dazu passen. Du fängst beim Fundament an, ziehst die tragenden
Mauern hoch, packst dann Strom und Wasser rein und ganz am Ende kommen Möbel,
Anstrich und Vorhänge. Falls dir die Vorhänge nicht mehr gefallen – kein Problem,
du hängst neue auf. Das Haus steht weiter.

Genau das ist die Idee von Clean Architecture – einer Bauweise für Software, die
der Programmierer Robert C. Martin (Spitzname „Uncle Bob“) im Jahr 2012 populär
gemacht hat.

Was steckt dahinter?

Software ist innen drin in Schichten aufgebaut – wie eine Zwiebel. Ganz innen liegen
die Dinge, die sich kaum ändern: die Geschäftsregeln. Bei einer Bank zum Beispiel
„Ein Konto darf nicht ins Minus rutschen, ausser es hat einen Dispo“. Diese Regel ist
heute, morgen und in zehn Jahren dieselbe – egal ob du sie auf einem Webformular,
einer Smartphone-App oder am Bankschalter anwendest.

Weiter aussen liegen die austauschbaren Sachen: die Datenbank, das Web-Framework,
das hübsche Bedienfeld. Das sind die Vorhänge. Die kann man wechseln, ohne dass das
ganze Haus zusammenbricht.

Die goldene Regel dabei: Innere Schichten dürfen nichts von äusseren Schichten wissen.
Die Geschäftsregel „kein Minus ohne Dispo“ darf nicht wissen, dass es PostgreSQL,
ein iPhone oder einen Touchscreen gibt. Sie kümmert sich nur um Konten und Geld.

Klingt simpel, ist aber unfassbar mächtig. Denn dadurch kann man:
  • Die Datenbank austauschen, ohne die Geschäftslogik anzufassen
  • Die Bedienoberfläche neu bauen, ohne alles drumherum zu zerlegen
  • Den Kern der Software in einer halben Sekunde durchtesten – ohne Datenbank, ohne Server, ohne nichts

Und wo steht OpenSimulator?

OpenSimulator (kurz OpenSim) ist eine Software, mit der
sich virtuelle 3D-Welten betreiben lassen – die Open-Source-Antwort auf Second Life. Eine
beeindruckende Codebasis, gewachsen seit 2007, mit unzähligen Features.

Aber: OpenSim ist nicht in dieser sauberen Schicht-Bauweise gemacht. Das war damals
auch keine Designentscheidung, denn das Projekt ist über fast zwei Jahrzehnte
organisch gewachsen. Geschäftslogik, Datenbankzugriffe, Netzwerkprotokolle und
Bedienoberflächen sind oft kreuz und quer miteinander verknüpft.

Bildlich gesprochen: Stell dir eine Werkstatt vor, in der Werkbank, Lager,
Verkaufstresen und Bürotisch alle in einem einzigen Raum stehen. Funktioniert –
aber wenn du den Verkaufstresen umstellen willst, fliegt dir auch die Werkbank
um die Ohren.

Konkret heisst das:
  • Die Kommunikation zwischen Servern läuft über XML-RPC, ein Protokoll aus den späten 90ern. Funktioniert, ist aber heute ungefähr so modern wie ein Faxgerät neben einem Smartphone.
  • Welt-Logik, Datenbankzugriff und Netzwerkkram leben in denselben Klassen. Wer eine Sache ändern will, muss aufpassen, dass nicht drei andere kaputt gehen.
  • Die Software lässt sich nur schwer in Häppchen testen, weil alles voneinander abhängt.

Das ist kein Vorwurf an die OpenSim-Entwickler – im Gegenteil, das Projekt ist eine
gewaltige Leistung. Es ist einfach so, dass die Welt der Softwarearchitektur seit
2007 deutlich weitergezogen ist.

Was sind akisim und akigrid?

Hier kommen meine zwei Projekte ins Spiel: akisim und akigrid.

OpenSim besteht im Kern aus zwei Teilen:
  • Region Server – die Maschine, auf der eine virtuelle Insel oder Welt läuft. Hier passiert die ganze 3D-Action: Avatare bewegen sich, Objekte werden angefasst, Skripte laufen.
  • Grid Server (heisst bei OpenSim „Robust“) – die zentrale Verwaltung. Wer ist eingeloggt? Wo wohnt mein Avatar? Welche Inseln gibt es? Wo liegen meine Inventar-Objekte?

Die beiden Stücke reden ständig miteinander. Und genau da setze ich an:
  • akisim ist ein Fork von OpenSim – also eine eigene Variante des Region Servers. Verschlankt, aufgeräumt, ohne den ganzen alten Standalone-Kram, der heute keiner mehr braucht. Geschrieben in C# auf .NET 8.
  • akigrid ist der Grid Server komplett neu gebaut – in Go (einer modernen Programmiersprache von Google), mit sauberer Schicht-Architektur und modernen Schnittstellen (gRPC statt XML-RPC).

Die beiden sind als Paar gedacht und sollen gemeinsam den klassischen
OpenSim-Stack ersetzen.

Und wieso bringt das einen Vorteil?

1. Sauberes Fundament
akigrid/akisim wird von Anfang an nach Clean Architecture gebaut. Geschäftslogik
in der Mitte, Datenbank- und Netzwerkkram aussen rum. Wenn morgen jemand
sagt „Ich will MariaDB durch PostgreSQL ersetzen“ – kein Drama. Die Schicht
mit der Datenbank wird ausgetauscht, alles andere bleibt wie es ist.

2. Modernes Reden zwischen den Servern
Statt XML-RPC reden akisim und akigrid über moderne Schnittstellen
(REST/gRPC). Das ist schneller, robuster, besser zu beobachten und
einfacher zu erweitern. Wo OpenSim quasi noch Briefe per Postkutsche
verschickt, telefonieren akisim und akigrid via WhatsApp.

3. Testbar bis ins Detail
Weil die Schichten sauber getrennt sind, kann ich einzelne Stücke
isoliert testen. Funktioniert die Login-Logik? Test in einer Hundertstelsekunde
beantwortet, ohne dass irgendwo eine Datenbank oder ein Server hochfahren muss.
Das macht das Projekt langfristig pflegbar – ein riesiger Unterschied.

4. Beobachtbar im Betrieb
akigrid bringt von Tag eins moderne Werkzeuge zur Beobachtung mit:
OpenTelemetry, Prometheus-Metriken, verteilte Traces.
Wenn etwas langsam ist, sieht man genau wo. Bei OpenSim sucht man
oft im Nebel.

5. Klare Aufgabenteilung
akisim kümmert sich nur um die Welt selbst – das, worin es richtig
gut ist (Physik, Avatare, Objekte, Skripte). akigrid kümmert sich
nur um die Verwaltung. Jeder macht was er gut kann, statt dass eine
Software alles gleichzeitig versucht.

6. Viewer-Kompatibilität bleibt
Wichtig: Die Programme, mit denen Nutzer in die virtuelle Welt
einsteigen (Firestorm, Cool VL Viewer und Co.), funktionieren
weiterhin ohne Anpassung. Das Protokoll, das die Viewer sprechen,
wird respektiert. Niemand muss sich umgewöhnen.

Fazit

Clean Architecture ist im Grunde simpel: Bau dein Software-Haus mit einem
Fundament, tragenden Wänden und austauschbaren Vorhängen.
Was sich nie ändert
gehört nach innen, was sich oft ändert gehört nach aussen.

OpenSim ist ein grossartiges Projekt – aber nach 18 Jahren organischen Wachstums
schwer zu pflegen. akisim und akigrid sind mein Versuch, den Stack mit der
Erfahrung von heute neu aufzustellen: schlank, modern, sauber geschichtet und
genau so kompatibel wo es muss (zu den Viewern), dass sich für die Nutzer am
Ende nichts ändert – ausser dass alles schneller, stabiler und langlebiger wird.

Oder kurz gesagt: gleiche virtuelle Welt, neues Fundament.
[Bild: footert5jul.jpg]
[-] The following 6 users say Thank You to Akira for this post:
  • Anachron, Bogus Curry, Dorena Verne, LyAvain, Mareta Dagostino, Pius Noel
Zitieren


Nachrichten in diesem Thema
Aki's Vibes - von Akira - 24.01.2026, 23:52
RE: Aki's Vibes - von Dorena Verne - 25.01.2026, 18:55
RE: Aki's Vibes - von Dorena Verne - 25.01.2026, 19:33
RE: Aki's Vibes - von Akira - 25.01.2026, 22:57
Aki's Vibes - Gridgeburtstag - von Akira - 01.02.2026, 19:41
RE: Aki's Vibes - von Dorena Verne - 02.02.2026, 07:00
RE: Aki's Vibes - von Bogus Curry - 02.02.2026, 10:23
RE: Aki's Vibes - von Mareta Dagostino - 02.02.2026, 10:36
RE: Aki's Vibes - von Dorena Verne - 02.02.2026, 10:39
RE: Aki's Vibes - von Mareta Dagostino - 02.02.2026, 10:49
Aki's Vibes - von Akira - 09.02.2026, 01:16
RE: Aki's Vibes - von Akira - 16.02.2026, 00:44
RE: Aki's Vibes - von Christoph Balhaus - 16.02.2026, 11:09
RE: Aki's Vibes - von Akira - 16.02.2026, 16:20
RE: Aki's Vibes - von Akira - 22.02.2026, 21:24
Aki's Vibes - von Akira - 01.03.2026, 22:20
RE: Aki's Vibes - von Bogus Curry - 02.03.2026, 13:52
RE: Aki's Vibes - von Akira - 02.03.2026, 23:02
RE: Aki's Vibes - von Dorena Verne - 02.03.2026, 14:11
Aki's Vibes - von Akira - 08.03.2026, 22:29
RE: Aki's Vibes - von Bogus Curry - 09.03.2026, 23:00
RE: Aki's Vibes - von Akira - 10.03.2026, 07:10
Aki's Vibes - von Akira - 06.04.2026, 00:33
RE: Aki's Vibes - von Akira - 19.04.2026, 20:33
RE: Aki's Vibes - von Dorena Verne - 19.04.2026, 20:42
RE: Aki's Vibes - von Bogus Curry - 19.04.2026, 21:24
RE: Aki's Vibes - von Akira - 19.04.2026, 21:51
RE: Aki's Vibes - von Akira - 26.04.2026, 19:27
RE: Aki's Vibes - von Bogus Curry - 27.04.2026, 15:17
Aki's Vibes - von Akira - Gestern, 22:26
RE: Aki's Vibes - von Dorena Verne - Heute, 05:31
RE: Aki's Vibes - von LyAvain - Vor 2 Stunden

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste