Generated from:
=stealth,swap,
node/.style={draw,minimum width=24mm,text centered,minimum height=14mm}]
\filldraw[fill=green!10,dashed,rounded corners=5mm]
(-1,-8) -- (4,-8) -- (4,-11) -- (-1,-11) -- cycle;
\filldraw[fill=blue!10,dashed,rounded corners=5mm]
(6,-5) -- (13,-5) -- (13,-11) -- (6,-11) -- cycle;
\node at (1,-10.5) {Foo};
\node at (10.5,-10.5) {Bar};
\node [node] (impl) at (1.5,-9) {Baz};
\node [node] (lang) at (8,-6) {X};
\node [node] (algo) at (11,-6) {Y};
\node [node] (proto) at (9.5,-9) {Z};
\draw[->] (lang) to node {} (proto);
\draw[->] (algo) to node {} (proto);
\draw[->,bend left] (impl) to node [swap,text centered]{Woo} (lang);
\draw[->,bend right] (impl) to node [text centered]{Woo} (algo.south west);
\end{tikzpicture}
\end{document}
]]>
then running tex4ht via mk4ht htlatex demo.tex