-\section{Discussion}
-%\todo
-\pages{3}
-
+\section{Discussion}\label{sec:discussion}
\subsection{Related Approaches}
-This section gives a short overview of related protocols for the Internet of
-Things and shows their advantages and disadvantages, which are summarized in
-Table~\ref{tab:comparison}.
+``Chatty Things'' is not the only approach to implement communication in
+embedded networks. This section gives a short overview of related protocols for
+the Internet of Things and shows their advantages and disadvantages, which are
+summarized in Table~\ref{tab:comparison}.
\begin{table}
\small\centering
\hline
Feature & Chatty Things & CoAP & MQTT & WS4D \\
\hline\hline
- application gateways neccessary & - & yes & yes & - \\ \hline
+ application gateways necessary & - & yes & yes & - \\ \hline
usable with standard clients & yes & - & - & (yes) \\ \hline
discovery support & yes & yes & - & yes\\ \hline
IPv6/6LoWPAN ready & yes & yes & ? & partial \\ \hline
The Constrained Application Protocol~\cite{draft-ietf-core-coap-18} focuses on
machine-to-machine communication and originates from the IETF Constrained
-Resources Working Group, but still has been only in draft status since 2010.\ It
-allows a mapping to HTTP, and is therefore stateless, but it specifies a binary
-protocol, which makes it neccessary to deploy application-level gateways and
-special client software to communicate with its environment. It relies on UDP,
-but emulates congestion control, message confirmation and message IDs, since –
-in contrast to HTTP – messages can be sent asynchronously. Discovery is also
-specified and done over multicast, service discovery is then done over a
-well-known URI on the host. Since it is a binary protocol and mostly
-self-contained, it has low protocol overhead and parsing complexity.
+Resources Working Group\footnote{\url{http://datatracker.ietf.org/wg/core/}},
+but still has been only in draft status since 2010.\ It allows a mapping to
+HTTP, and is therefore stateless, but it specifies a binary protocol, which
+makes it necessary to deploy application-level gateways and special client
+software to communicate with its environment. It relies on UDP, but emulates
+congestion control, message confirmation and message IDs, since – in contrast to
+HTTP – messages can be sent asynchronously. Discovery is also specified and done
+over multicast, service discovery is then done over a well-known URI on the
+host. Since it is a binary protocol and mostly self-contained, it has low
+protocol overhead and parsing complexity.
\paragraph{MQ Telemetry Transport (MQTT)}
be used in existing infrastructures, and is also focused on multiple platforms
like embedded systems and servers. Web Services can be very flexible and
composable, and discovery is already specified, however, this also comes at a
-cost: web services are enclosed in SOAP, which is enclosed in HTTP, which is
-transported over TCP, which introduces very much overhead, except with SOAP
-being based on verbose XML. IPv6 support is only partially implemented.
+cost: messages are enclosed in SOAP, which is enclosed in HTTP, which is
+transported over TCP, which introduces a substantial overhead, especially with
+SOAP being based on verbose XML. IPv6 support is only partially implemented.
For communication, standard APIs can be used.
\subsection{Conclusion}
protocol, there is the need to implement at least an XML parser on each node,
which comes with protocol overhead and increased code size. However Klauck and
Kirsche show that with good optimization (in the code as well as in the
-procotol), a complete stack can be implemented in 12 kByte of ROM, which leaves
-enough space for other applications to build onto it. As compared to Web
+protocol), a complete stack can be implemented in 12 kBytes of ROM, which leaves
+enough space for other applications to be built onto it. As compared to Web
Services, Chatty Things are probably not as flexible, but they have less
overhead, even when using XML, while MQTT and CoAP provide less flexibility for
-future enhancement, therefore less protocol overhead and easier parsing.
+future enhancement, but less protocol overhead and easier parsing.
With TCP, mDNS, DNS-SD and XMPP as foundation, the proposed architecture builds
on reliable and established standards, which allows it to reuse Chatty Things in
which is caused by the lack of support for Multi-User Chats in XEP-0174
(Serverless Messaging). If this gap can be closed, or a different way for topic
filtering in distributed networks is found, the server can be
-eliminated and what remains is truly distributed network without the need for
-any central infrastructure, therefore eliminating every single point of failure
+eliminated and what remains is a highly distributed network without the need for
+much central infrastructure, therefore eliminating most single points of failure
in the system.
It is always hard to trade flexibility and accessibility for efficiency. The
Chatty Things approach is probably not one of the most efficient, and not the
most flexible, but it has the big advantage that users can interact with their
things using standard chat clients, without the need for application gateways or
-specialized software. In terms of efficiency, it chooses a common ground between
-binary protocols and Web Services, which were originally developed for servers
-with much less resource constraints as embedded systems.
-
-\todo{additional XEPs, example XML stream with sensor data}
+specialized software. In terms of efficiency, it chooses a compromise between
+binary protocols and Web Services, latter which were originally developed for
+servers with much less resource constraints as embedded systems. However, with
+additional XEPs focusing on the Internet of Things, enough flexibility can be
+achieved for this use case.
% vim: set ft=tex et ts=2 sw=2 :