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