Dies ist eine alte Version des Dokuments!
https://www.docker.com/blog/getting-started-with-jupyterlab-as-a-docker-extension/
JupyterLab folgt einer Client-Server-Architektur (Abbildung 2), bei der der in TypeScript und React implementierte Client im Webbrowser des Benutzers ausgeführt wird. Es nutzt den Webpack-Modul-Bundler, um seinen Code in eine einzige JavaScript-Datei zu packen und über WebSockets mit dem Server zu kommunizieren. .Andererseits ist der Server eine Python-Anwendung, die das Tornado-Webframework nutzt, um den Client zu bedienen und verschiedene Funktionalitäten zu verwalten, darunter Kernel, Dateiverwaltung, Authentifizierung und Autorisierung. .Kernel, die für die Ausführung des im JupyterLab-Client eingegebenen Codes verantwortlich sind, können in jeder Programmiersprache geschrieben werden, obwohl Python häufig verwendet wird.
Der Client und der Server tauschen Daten und Befehle über das WebSockets-Protokoll aus. .Der Client sendet Anfragen an den Server, z. B. Codeausführung oder Notebook-Laden, während der Server auf diese Anfragen antwortet und Daten an den Client zurückgibt.
.Kernel sind eigenständige Prozesse, die vom JupyterLab-Server verwaltet werden und es ihnen ermöglichen, Code auszuführen und Ergebnisse – einschließlich Text, Bilder und Diagramme – an den Client zu senden. .Darüber hinaus zeigt sich die Flexibilität und Erweiterbarkeit von JupyterLab durch die Unterstützung von Erweiterungen, die es Benutzern ermöglichen, neue Features und Funktionalitäten wie benutzerdefinierte Kernel, Dateibetrachter und Editor-Plugins einzuführen, um ihr JupyterLab-Erlebnis zu verbessern ..