Prozessbasierte Architektur
Information
Die Architektur des PLANTA-Servers basiert auf einem prozessbasierter Ansatz, was bedeutet, dass jede Client-Sitzung in einem isolierten Prozess abläuft und weder andere Sitzungen noch den gesamten Serverbetrieb gefährden kann.
Dies bietet folgende Vorteile:
Stabilität: Sitzungsabbrüche haben keine Auswirkungen auf den gesamten PLANTA-Server, da die einzelnen Sitzungen nun getrennt voneinander sind.
Geringere Ressourcenkonkurrenz: Da exklusive Ressourcen, wie z.B. der Python-Interpreter, nicht mehr nur von einer Sitzung in Anspruch genommen werden, kommt es zu Performance-Verbesserungen.
Vermeidung von unnötiger Ressourcenbelegung: Bei einer Speicherschutzverletzung kann die entsprechende Session sofort gefahrlos beendet werden. Dadurch steht dieser Speicher dem Gesamtsystem sofort wieder zur Verfügung.
Details
Jede Client-Sitzung wird innerhalb eines Prozesses ausgeführt.
Die für die Datenbank-Kommunikation und Sitzungsverwaltung verantwortliche Schicht ist rein Java-basiert.
Parallel hierzu läuft eine rein native Komponente zur Annahme von Client-Verbindungen und Verteilung des DataDictionary (Master).
Die ebenfalls native Sitzungskomponente, die für jede Client-Verbindung erstellt wird, übernimmt z.B. die Authentifizierung, den Modulaufbau und die allgemeine Ereignisverarbeitung.
Zur Kommunikation zwischen den Komponenten nutzt der PLANTA-Server über Protocol Buffers serialisierte Nachrichten, die über ausschließlich lokal ansprechbare Netzwerk-Sockets ausgetauscht werden.

Auswirkungen
Ein Sitzungsabsturz/-abbruch hat durch die Prozessraumtrennung keine direkten Auswirkungen auf andere Sitzungen (z.B. Speicherverletzungen etc.).
Alle Python-Interpreter sind in jede Sitzung integriert.
Insbesondere bei hoher paralleler Nutzung des Servers führt dies zur Verbesserung der Performance, da immer ein exklusiver Zugriff gegeben ist.
Die Python-Interpreter können nicht mehr zur gemeinsamen Nutzung von Daten verwendet werden; gleichzeitig verhindert dies fehlerhafte bzw. missbräuchliche Applikation, die o.g. Speicherverletzungen hervorrufen können.