X-Git-Url: https://git.rohieb.name/skm-ma-ws1314.git/blobdiff_plain/28a82327c7952cf1bad8680ae7b408e57ef70615..e27213d0f277cff7194e3c69d27a7048cb7ee7cb:/sec-chatty-things.tex diff --git a/sec-chatty-things.tex b/sec-chatty-things.tex index 01f0bb2..01f0ed0 100644 --- a/sec-chatty-things.tex +++ b/sec-chatty-things.tex @@ -4,8 +4,6 @@ After the underlying techniques have been explained, we can have a look at the system architecture which Klauck and Kirsche~\cite{Klauck:2012:BCC:2352852.2352881} use to build Chatty Things. - -\todo \pages{3} \subsection{Service Provisioning Sublayer} @@ -34,12 +32,12 @@ Furthermore, Klauck and Kirsche implemented new features for uXMPP, which were 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 @@ -50,7 +48,7 @@ The resulting implementation (uXMPP and uBonjour) gets by with 12{.}2\ kBytes of 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 @@ -69,8 +67,7 @@ devices of a topic, or she can also interact with them directly. 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 @@ -118,10 +115,27 @@ During runtime, a device can then react to changes in network infrastructure: 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 :