Jupyter is a HTTP server that hosts notebooks for interactive data task (analysis, …)
The base Kernel (IPython) is a separate process which is responsible for:
Frontends, like the notebook or the Qt console, communicate with the IPython Kernel using JSON messages.
IPython: When you type ipython, you get the original IPython interface which is a Repl
Jupyter widgets enable interactive data visualization in the Jupyter notebooks.