system architecture which Klauck and
Kirsche~\cite{Klauck:2012:BCC:2352852.2352881} use to build Chatty Things.
-
-\todo
\pages{3}
\subsection{Service Provisioning Sublayer}
realized as separate modules to allow enabling and disabling them at runtime,
thus further reducing the memory footprint of a running system:
-\todo[minimize space between list item]
+\todo{minimize space between list items}
\begin{itemize}
\item support for IPv6
\item support for Multi-User Chats (XEP-0045), which are used for information
filtering
- \item support for SASL ANONYMOUS login for XMPP servers \ref{xep-0175}
+ \item support for SASL ANONYMOUS login for XMPP servers \cite{xep0175}
\item a new publish-subscribe mechanism called Temporary Subscription for
Presence (see \ref{sec:tsp})
\item XMPP Serverless Messaging (XEP-0174), using \term{uBonjour} as
ROM and 0{.}63\ kBytes of RAM, which was about the size of the original,
unoptimized uXMPP implementation while also implementing new features.
-\todo[figure of example network structure with and without central server]
+\todo{figure of example network structure with and without central server}
In order to react to different network infrastructures, their implementation
allows both communication with a central XMPP server as well as peer-to-peer
In scenarios without an XMPP server, the XEP-0174 module is activated and
devices talk directly with the user or with other devices. This method has the
drawback that Multi-User Chats cannot be used for topic filtering, since no
-method is specified to do XEP-0045 and XEP-0174 at the same time. \todo[temporary subscription presence here?]
-In this case,
+method is specified to do XEP-0045 and XEP-0174 at the same time. In this case,
a user must have an XEP-0174-compliant chat client, but it also gives her the
opportunity to interact with things spontaneously on an ad-hoc basis (e.~g. when
entering a room) without need for any additional gateway on the application
Messaging and uBonjour and join topic-based Multi-User Chats.
\end{itemize}
-\todo[short conclusion?]
+\todo{short conclusion?}
\subsection{Temporary Subscription for Presence}\label{sec:tsp}
-To further reduce the message overhead
+To further reduce the message overhead and allow more fine-grained controls over
+information filtering, \term{Temporary Subscription for Presence} is introduced.
+This technique builds on top of presence stanzas as defined in core XMPP. These
+presence stanzas are sent without a \code{to} or \code{from} attribute, and
+therefore fit into a single TCP/IP packet over IEEE~802.15.4. However, to be
+able to receive these stanzas, a client must manually subscribe to those
+information in their roster, which requires further communication between nodes. As the network
+can change rapidly, subscriptions would be often outdated, and there would be
+much overhead of subscriptions and unsubscription packets, which would inhibit
+the flow of the actual information.
+
+To solve this problem, a dynamic, topic-based roster is implemented on top of
+Multi-User Chats (XEP-0045). Every topic corresponds with a chat room, and nodes
+join the chat rooms which they are interested in. This allows nodes to inform
+only interested nodes about updates. This has the advantage that existing
+clients supporting Multi-User Chats can be used by a user, but Chatty Things and
+XMPP servers need to be adapted to the new subscription model. Also, this
+mechanism does not work with Serverless Messaging.
% vim: set ft=tex et ts=2 sw=2 :