-
Johannes Wasmer authoredJohannes Wasmer authored
iffaiida-architecture.tikz 2.37 KiB
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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}