Notebook Server as a Proxy ◆◆

title: User browses to localhost:8888/notebooks/example.ipynb
participant js
participant nbs
participant kernel
nbs-->js: ICCP over \nwebsockets
js-->nbs:
nbs-->kernel: ICCP over \nZeroMQ
kernel-->nbs: 
nbs->js: sends example.ipynb\n    (JSON file)
nbs->kernel: starts up the kernel
note over js: parses JSON structure\ncreates JS representation
note left of js: User types "x=1"\nin a cell\nand executes it
js->nbs: Execute "x=42"
js-js: In[*]
nbs->kernel: Execute "x=42"
kernel-kernel: x=42
kernel->nbs: OK, execution count=1
nbs->js: OK, execution count=1
js-js: In[1]
note over kernel: x=42