559854a512e640839e1e38434a00ccddbd481256
[phd-thesis.git] / top / mtask_integration.tex
1 \documentclass[tikz]{standalone}
2 \usetikzlibrary{positioning,shapes.geometric,shapes.symbols,shadows,fit}
3 \begin{document}
4 \begin{tikzpicture}[%
5 node distance=1em,
6 task/.style={regular polygon,regular polygon sides=3,text width=2.5em,draw},
7 share/.style={cylinder,shape border rotate=90,aspect=.3,text width=2.5em,text height=1em,draw},
8 client/.style={cloud,aspect=2}
9 ]
10 \node (C1) [client,inner sep=0pt,draw] {Client\textsubscript{1}};
11 \node (C2) [client,inner sep=0pt,draw,right=of C1] {Client\textsubscript{2}};
12 \node (CD) [right=of C2] {\ldots};
13 \node (CN) [client,inner sep=0pt,draw,right=of CD] {Client\textsubscript{n}};
14
15 % line between server and browser
16 \draw [dotted] ([xshift=-5em,yshift=-.8em]C1.south west) node[left,above]{browser} node[left,below]{server(s)} -- ([xshift=5em,yshift=-.8em]CN.south east);
17
18 \node[task,inner sep=-4.5pt,below=of C1,fill=white,xshift=6.5em,yshift=-4.5em] (Tn) {Task\textsubscript{n}};
19 \node[task,inner sep=-4.5pt,below=of C1,fill=white,xshift=5em,yshift=-3.0em] (Td) {\ldots};
20 \node[task,inner sep=-4.5pt,below=of C1,fill=white,xshift=3.5em,yshift=-1.5em] (T2) {Task\textsubscript{2}};
21 \node[task,inner sep=-4.5pt,below=of C1,fill=white,xshift=2em] (T1) {Task\textsubscript{1}};
22
23 \node[share,node distance=6em,right=of T1,fill=white,xshift=4.5em,yshift=-4.5em] (Sn) {SDS\textsubscript{n}};
24 \node[share,node distance=6em,right=of T1,fill=white,xshift=3em,yshift=-3.0em] (Sd) {\ldots};
25 \node[share,node distance=6em,right=of T1,fill=white,xshift=1.5em,yshift=-1.5em] (S2) {SDS\textsubscript{2}};
26 \node[share,node distance=6em,right=of T1,fill=white] (S1) {SDS\textsubscript{1}};
27
28 \node[fit={(T1)(Sn)},draw] (TS) {};
29
30 % line between client and server
31 \draw [dotted] ([xshift=-5em,yshift=-11em]C1.south west) node[left,above]{server(s)} node[left,below]{device(s)} -- ([xshift=5em,yshift=-11em]CN.south east);
32
33 % device 1
34 \node[task,text width=1.5em,inner sep=-4.5pt,node distance=12em,below=of C1,double copy shadow={shadow xshift=.4em,shadow yshift=-.4em},fill=white] (D1T1) {};
35 \node[share,text width=.3em,text height=.8ex,right=of D1T1,double copy shadow={shadow xshift=.4em,shadow yshift=-.4em},fill=white] (D1S1) {};
36
37 \node[draw,fit={(D1S1)(D1T1)([shift={(1.2em,-1.2em)}]D1S1.south east)},label=below:{\scriptsize mTask device\textsubscript{1}}] (D1) {};
38
39 % device 2
40 \node[task,text width=1.5em,inner sep=-4.5pt,node distance=12em,below=of C2,double copy shadow={shadow xshift=.4em,shadow yshift=-.4em},fill=white] (D2T1) {};
41 \node[share,text width=.3em,text height=.8ex,right=of D2T1,double copy shadow={shadow xshift=.4em,shadow yshift=-.4em},fill=white] (D2S1) {};
42
43 \node[draw,fit={(D2S1)(D2T1)([shift={(1.2em,-1.2em)}]D2S1.south east)},label=below:{\scriptsize mTask device\textsubscript{2}}] (D2) {};
44
45 % device ...
46 \node[right=of D2] {\ldots};
47
48 % device n
49 \node[task,text width=1.5em,inner sep=-4.5pt,node distance=12em,below=of CN,double copy shadow={shadow xshift=.4em,shadow yshift=-.4em},fill=white] (DNT1) {};
50 \node[share,text width=.3em,text height=.8ex,right=of DNT1,double copy shadow={shadow xshift=.4em,shadow yshift=-.4em},fill=white] (DNS1) {};
51
52 \node[draw,fit={(DNS1)(DNT1)([shift={(1.2em,-1.2em)}]DNS1.south east)},label=below:{\scriptsize mTask device\textsubscript{n}}] (DN) {};
53
54 % iTask server
55 \node[fit={(C1)([shift={(1em,-1.2em)}]DN.south east)},draw,label={iTask server}] {};
56
57 % Arrows
58 \draw [<->] (C1) -- (T1);
59 \draw [<->] (C2) -- (T1);
60 \draw [<->] (CN) -- (T1);
61
62 \draw [<->] (T1) -- (S1);
63 \draw [<->] (T1) -- (S2);
64 \draw [<->] (T1) -- (Sn);
65
66 \draw [<->] (Tn) -- node [midway,above,fill=white] {\small\texttt{liftmTask}} (D2T1);
67 \draw [<->] (Sn) -- node [midway,above,fill=white] {\small\texttt{lowersds}} (D2S1);
68
69 \draw [<->] (D1T1) -- (D1S1);
70 \draw [<->] (D2T1) -- (D2S1);
71 \draw [<->] (DNT1) -- (DNS1);
72
73 \draw [<->] (D1.north) to [in=180,out=135] node [midway,above,fill=white] {\small\texttt{withDevice}} (TS.west);
74 \end{tikzpicture}
75 \end{document}