wiki:Software/Jupyter

Version 15 (modified by Jens Henrik Goebbert, 7 years ago) ( diff )

--

Jupyter

Jupyter for JSC is in alpha phase


The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and explanatory text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, machine learning and much more.




Project Jupyter created JupyterHub to support many users. The Hub can offer notebook servers to a class of students, a corporate data science workgroup, a scientific research project, or a high performance computing group. With JupyterHub a multi-user Hub which spawns, manages, and proxies multiple instances of the single-user Jupyter notebook (IPython notebook) server can be created.





Where are the sources?

How does it work?

JupyterHub

JupyterHub is a multi-user server that manages and proxies multiple instances of the single-user Jupyter notebook server.

There are three basic processes involved:

  • multi-user Hub (Python/Tornado)
  • configurable http proxy (node-http-proxy)
  • multiple single-user IPython notebook servers (Python/IPython/Tornado)

The proxy is the only process that listens on a public interface. The Hub sits behind the proxy at /hub. Single-user servers sit behind the proxy at /user/[username].

more: https://jupyterhub.readthedocs.io/en/0.7.2/howitworks.html

Callpath
Websites

The websites of JupyterHub are stored in share/jupyter/hub

  • They are build with the template engine Jinja2 for Python for a dynamic generation of the html pages (a detailed description of the API can be found here).
  • Components like buttons are used from bootstrap. It gets included via stylesheets here.
  • home.html
    • provides "block main" and "block script" required by page.html
    • distinguages between "user.running" and "not user.running"
    • uses button class btn-danger and btn-success from bootstrap buttons
    • "block script" includes JavaScript file home.js
      • implements function if stop-button is clicked
        • for communication back to the server functions from the JupyterHubAPI in jhapi.js are called
          • jhapi.js uses jquery.js for ajax-functionality (send/recive commands between client/server)
            • values are send back to client with an an asynchronous HTTP (Ajax) request using jquery.ajax() here
              => this triggers a handler of the tornado web server (eg. apihandler)

any feedback welcomed - h.zilken@…, j.goebbert@…

Attachments (6)

Note: See TracWiki for help on using the wiki.