twister.tex (3711B)
1 \documentclass[c]{beamer} 2 3 %\usepackage{helvet} 4 \usepackage{calc} 5 \usepackage[utf8]{inputenc} % set your input encoding differently, if you want 6 \usepackage[english]{babel} 7 \usepackage{listings} 8 \usepackage{wrapfig} 9 \usepackage{fancyvrb} 10 \usepackage{enumitem} 11 \usepackage{eurosym} 12 \usepackage{tikz} 13 \usepackage{pgfgantt} 14 \usepackage{amsmath,amssymb} 15 \usetikzlibrary{shapes,arrows,fit} 16 \usetikzlibrary{positioning} 17 \usetikzlibrary{calc} 18 \usepackage[absolute,overlay]{textpos} 19 20 %\setbeameroption{show notes} 21 22 \setlist[itemize]{label=$\bullet$} 23 24 25 \def\checkmark{\tikz\fill[scale=0.4](0,.35) -- (.25,0) -- (1,.7) -- (.25,.15) -- cycle;} 26 27 \setbeamertemplate{navigation symbols}{} 28 %\setbeamercovered{transparent=10} 29 \setbeamertemplate{navigation symbols}{\url{taler.net}} 30 %\setbeamertemplate{section in toc}[sections numbered] 31 32 % Adapt title information 33 % ======================= 34 \title{GNU Twister \\ Easy C instrumentation and programmable proxy} 35 \institute{Taler Systems SA} 36 \author{Christian Grothoff ({\tt christian@grothoff.org}) \\ 37 Marcello Stanisci ({\tt stanisci.m@gmail.com})} 38 39 \date{10.9.2018} 40 41 % Some common packages 42 % ==================== 43 \usepackage{units} 44 \usepackage{amsbsy} 45 \usepackage{amsmath} 46 \usepackage{amssymb} 47 \usepackage{graphics} 48 \usepackage{epsf} 49 \usepackage{epsfig} 50 \usepackage{fixmath} 51 \usepackage{wrapfig} 52 53 54 \usetikzlibrary{snakes} 55 56 57 \begin{document} 58 59 \begin{frame} 60 \titlepage 61 \end{frame} 62 63 \begin{frame} 64 \frametitle{Overall architecture} 65 66 % Overall architecture where Twister applies: 67 % HTTP client, HTTP server, REST API, 68 % focus on JSON as interchange format 69 70 \begin{center} 71 \includegraphics[width=0.66\textwidth]{Whole.png} 72 \end{center} 73 74 \end{frame} 75 76 \begin{frame}[fragile] 77 \frametitle{HTTP proxy} 78 79 % Twister HTTP proxy (between client and server) 80 81 \begin{center} 82 \includegraphics[width=0.66\textwidth]{Whole-NoDriver.png} 83 \end{center} 84 85 \begin{Verbatim}[fontsize=\tiny] 86 # twister.conf 87 88 [twister] 89 # listens here 90 HTTP_PORT = 8888 91 # forwards there 92 DESTINATION_BASE_URL = http://localhost:8080 93 .. 94 \end{Verbatim} 95 96 \end{frame} 97 98 \begin{frame}[fragile] 99 \frametitle{Driving it} 100 101 % Test driver (below) controlling client, 102 % twister and server to drive test execution 103 104 \begin{center} 105 \includegraphics[width=0.66\textwidth]{Whole-NoClientServer.png} 106 \end{center} 107 108 \begin{columns}[T,onlytextwidth] 109 \begin{column}{.5\textwidth} 110 \begin{minipage}{\textwidth} 111 \begin{Verbatim}[fontsize=\tiny] 112 # twister.conf 113 114 [twister] 115 # Control channel. 116 UNIXPATH = /tmp/taler-service-twister.sock 117 .. 118 \end{Verbatim} 119 \end{minipage} 120 \end{column} 121 \begin{column}{.5\textwidth} 122 \begin{minipage}{\textwidth} 123 \begin{Verbatim}[fontsize=\tiny] 124 # CLI 125 126 $ taler-twister -c twister.conf \ 127 --flip-ul=child.one 128 \end{Verbatim} 129 \end{minipage} 130 \end{column} 131 \end{columns} 132 133 \end{frame} 134 135 \begin{frame}[fragile] 136 \frametitle{Driving it (Libtalertwister)} 137 138 % libtalertwister: control API examples (giving Twister commands 139 % to twist next request/response) 140 141 \begin{textblock*}{2cm}(7cm,1cm) 142 \includegraphics[scale=0.09]{Whole-NoClientServer.png} 143 \end{textblock*} 144 145 {\tiny 146 \begin{lstlisting}[language=C,basicstyle=\footnotesize,keywordstyle=\color{blue}] 147 #include <taler/taler_twister_service.h> 148 149 handle = TALER_TWISTER_connect (CONFIG); 150 151 /* Issue char-flipping command */ 152 TALER_TWISTER_flip_upload (handle, 153 "child.one", 154 &callback, 155 NULL); 156 // ... 157 TALER_TWISTER_disconnect (handle); 158 \end{lstlisting} 159 } 160 \end{frame} 161 162 \end{document}