Mit einem Leiterwagen kommt man nicht auf den Mond – in diesem provokativen Satz ist folgende Botschaft verborgen: Um ein bestimmtes Ziel zu erreichen, benötigt man die geeigneten Werkzeuge. Um auf den Mond zu gelangen, benötigt man offensichtlich etwas anderes als konventionelle Fortbewegungsmittel. Die Cloud ist auf dem Weg zum Mond und Onshape das richtige Fahrzeug dafür.
In diesem Artikel erläutere und kommentiere ich einen Vortrag von Ilya Baran, verantwortlich für die Architektur von Onshape, den er auf der OnshapeLive21 Konferenz im März 2021 gehalten hat. Er hat ihn „Under the Hood“ (Unter die Haube geschaut) genannt und erläutert die Onshape zugrundeliegenden Technologien. Er beschreibt sozusagen die Software-Maschine, die Onshape zum Mond bringen soll, um bei diesem Bild zu bleiben.
Mit Bildern und Gleichnissen kann man gut Sachverhalte veranschaulichen: Das Fundament eines Gebäudes bestimmt, was Du darauf bauen kannst, ein Hochhaus, ein einstöckiges Gebäude oder eine Hundehütte. Das ist bei Software und der Architektur von Software genauso.
Ein System muss von Anfang an mit der beabsichtigten Architektur aufgebaut sein. Der Versuch, einiges Neues mit alter Technologie zu kombinieren, führt zu halben, „Ccloudgewaschenen“ Lösungen.
Die Angebote am Markt können im klassischen Quadrantenmodell klassifiziert werden.
- alle klassischen Desktop-CAD-Lösungen
Dann gibt es die auf dem halben Weg stehengebliebenen Lösungen:
- Auf einer virtuellen Maschine bereitgestellte CAD-Angebote. Der Anwender hat von überall Zugriff und muss nicht in teure Hardware investieren. Aber er nutzt dasselbe CAD-System wie bisher mit den gegebenen Kollaborationsmöglichkeiten, denselben Versions- und Datenmanagement-Problemen.
- „Thick clients“ werden lokal installiert und beziehen Dienste aus der Cloud, beispielsweise die Datenbereitstellung. Die Unterstützung beim Teilen von Daten und die Zusammenarbeit ist besser. Die lokalen Hardware- und Upgrade-Herausforderungen bleiben allerdings bestehen. Es gibt keinen Vorteil durch eine gemeinsame Datenbank, kein Verzweigen und Vereinigen, kein simultanes Editieren usw.
Im oberen rechten Quadranten ist ganz offensichtlich Onshape angesiedelt.
- Es ist von Anfang an kompromisslos für die Nutzung in der Cloud entwickelt, es gibt keine „Thick Clients“, alle Daten sind in einer Datenbank und nicht in Dateien abgelegt.
Die Onshape Architektur ist einzigartig in der CAD-Welt. Der lokale Client ist für die User-Interface-Aktivitäten und die Grafik zuständig. Auf der Gegenseite, in der Cloud, stehen verschiedene Server, die verschiedene Aufgaben und die Kommunikation mit dem Client übernehmen. Jeder Server läuft jederzeit auf einer Reihe von Maschinen, die auf Ausfallsicherheit ausgelegt sind. Stürzt ein Server ab, wird er sofort durch eine andere Maschine ersetzt.
Der Vorteil der Nutzung der zentralen Server der Amazon Web Services (AWS) ist, dass die Rechenkapazität entsprechend den gerade aktuellen Anforderungen skaliert werden kann. Einige Hundert mehr Anwender benötigen nur wenige extra Maschinen. Hohe Leistung kann zu einem vernünftigen Preis geliefert werden. Das zugrunde liegende Multi-Tenancy Konzept nutzt die Hardware effizient. Ein Skalieren ist dagegen mit einem Desktop nicht möglich, die Hardware muss mit auf die höchsten Anwendungsanforderungen ausgelegt werden. Die meiste Zeit läuft Desktophardware deswegen im Leerlauf – Welche Verschwendung!
Wenn übrigens der Geometrieserver abstürzt, stürzt nicht die gesamte Applikation ab, wie bei den üblichen, monolithisch in C++ programmierten Anwendungen. Der C++ Code ist isoliert, damit sicherer integriert und die Absturztoleranz ist höher.
Die Vorteile der beschriebenen Architektur sind offensichtlich und darin begründet, dass keine Segmentierung der Daten wegen der Hardwarestruktur gibt. Alles ist an einem Ort. Es gibt nur eine Quelle der Wahrheit, auf die alle Berechtigten zugreifen. Es gibt keine Kopien irgendwelcher Erzeugerdaten, von geistigem Eigentum. Das geistige Eigentum verlässt das „Fort Knox“, die Multi Tenancy Mongo Datenbank nie. Es werden lediglich Transaktionen mit der Datenbank ausgetauscht.
Da alle Daten in einer einzigen Datenbasis gespeichert sind, gibt es keine gebrochenen Referenzen mehr. Der Anwender profitiert von höchster Sicherheit und besseren Desaster-Szenarien, als traditionelle Strukturen je liefern können.
Ein kleines Beispiel aus meiner „alten“ Welt: Viele SolidWorks Partner sind recht erfolgreich mit Möbelapplikationen. Die Verwendung von Feature Script macht es sicherlich einfacher, solche Anpassungen zu entwickeln, als wenn eine API genutzt werden muss, die on top über dem System liegt und zudem noch Versions-Herausforderungen ausgeliefert ist.