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
Bei erfolgreichem Start des Servers laufen mindestens drei Prozesse: service wrapper, PLANTAServer, Master (DataDictionary, Verbindungsannahme) und für jede Sitzung ein weiterer Prozess.
Da die Kommunikation über Sockets erfolgt, muss u.U. die Maximalanzahl von Dateideskriptoren angehoben werden.
Sitzungen können über Betriebssystemmittel (kill, Task-Manager) auch einzeln beendet werden.
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.
Datenschutzhinweis
Wir verwenden Cookies und andere Technologien auf unserer Website. Mehr Informationen finden Sie hier: Datenschutzerklärung