%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Description. % % System architecture for the iffAiiDA Jupyter server. % URL https://iffAiiDA.fz-juelich.de % Figure by Ingo Meier, Scientific IT Systems, Forschungszentrum Jülich. % URL https://pgi-jcns.fz-juelich.de % This is a copy of original, up-to-date version on iffTeX. % URL (invite-only) https://ifftex.fz-juelich.de/project/668559f4fd7fbc4aa3315771 % Last update 2024-07-08. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \usepackage[utf8]{inputenc} % \usepackage[T1]{fontenc} % \usepackage{lmodern} % \usepackage[ngerman]{babel} % \usepackage[usenames, dvipsnames, svgnames, table]{xcolor} % \usepackage{fontawesome5} % \usepackage[pdftex]{graphicx} % \usepackage{tikz} \usetikzlibrary{calc} \begin{tikzpicture}[x=3cm, y=3cm, yscale=-1] \sffamily \node[draw] (jupterhub) at (2.35,0) {\parbox{11cm}{\centering{}JupyterHub\\\vspace{7cm}}}; \node[draw] (user) at (0,0) {\faUser}; \node[draw] (authorization) at (1, 0) {\parbox{2.5cm}{\centering\faLock\\Authorization}}; \node[draw] (login service) at (0, 1) {Central Login}; \node[draw] (docker container) at (3, 0) {\parbox{6cm}{\centering\faDocker\\User's Docker container\\\vspace{5cm}}}; \node[draw] (jupyter client) at (3, 0) {JupyterHub/Lab client}; \node[draw] (aiida kernel) at (3, 0.5) {AiiDA kernel}; \node[draw] (file server) at (2.5, 1.75) {\parbox{2.5cm}{\centering\faServer\\File server}}; \node[draw] (compute cluster) at (3.5, 1.75) {Compute Cluster}; \node[draw] (local storage) at (4.75, 0) {\parbox{2.5cm}{\centering\faFile\\Local storage}}; \node[draw] (browser) at (2.5, -1.75) {\parbox{2.5cm}{\centering\faFirefox\\Browser}}; \node[draw] (ssh) at (3.5, -1.75) {\parbox{2.5cm}{\centering\faTerminal\\SSH}}; \begin{scope}[>=latex] \draw[->] (user) -- (authorization); \draw[->] (authorization) -- (authorization |- login service) -- node[above] {OAuth2} (login service); \draw[->] (authorization) -- (docker container); \draw[<->] (jupyter client) -- (aiida kernel); \draw[<->] (docker container) -- (file server); \draw[<->] (docker container) -- (compute cluster); \draw[<->] (docker container) -- (local storage); \draw[->] (browser) -- (docker container); \draw[->] (ssh) -- (docker container); \end{scope} \end{tikzpicture}