<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div class="" align="left" style="" id="yui_3_16_0_1_1431531555145_11025"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class="">Hi Peter and Eelco,<o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="" id="yui_3_16_0_1_1431531555145_11024"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class="" id="yui_3_16_0_1_1431531555145_11023">I've read your discussion about pubsub & XMPP IoT, here some hint from
me:<o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="" id="yui_3_16_0_1_1431531555145_11022"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class=""> </span></div>

<div class="" align="left" style="margin: 12pt 0cm;" id="yui_3_16_0_1_1431531555145_11019"><span lang="EN-GB" style="font-size: 10pt; font-family: 'Courier New';" class="" id="yui_3_16_0_1_1431531555145_11021">><i class="" style="" id="yui_3_16_0_1_1431531555145_11020"> Perhaps it’s time to retake the XEP-writing
effort and write down some guidelines for IoT on XMPP using pubsub…</i><o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="" id="yui_3_16_0_1_1431531555145_11018"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class=""> </span></div>

<div class="" align="left" style="" id="yui_3_16_0_1_1431531555145_10881"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class="" id="yui_3_16_0_1_1431531555145_10880">I could be interested in working on this, if you start to write it, please
consider to include also me.<o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="" id="yui_3_16_0_1_1431531555145_10834"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class=""> </span></div>

<div class="" align="left" style="" id="yui_3_16_0_1_1431531555145_10833"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class="" id="yui_3_16_0_1_1431531555145_10832"> </span></div>

<div class="" align="left" style="margin: 12pt 0cm;" id="yui_3_16_0_1_1431531555145_10883"><span lang="EN-GB" style="font-size: 10pt; font-family: 'Courier New';" class="" id="yui_3_16_0_1_1431531555145_10882">> I have thought about implementing the second idea
above, myself. I think such a component might have a very important role for
the publish/subscribe pattern in XMPP, and solves many of the security issues
in other pubsub solutions. Would you be interested in investigating this
further?<o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="" id="yui_3_16_0_1_1431531555145_10884"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class=""> <o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="" id="yui_3_16_0_1_1431531555145_10886"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class="" id="yui_3_16_0_1_1431531555145_10885">Also in this case I would like to join, so if I can help, please contact
me.<o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="" id="yui_3_16_0_1_1431531555145_10887"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class=""> </span></div>

<div class="" align="left" style="" id="yui_3_16_0_1_1431531555145_10888"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class=""> </span></div>

<div class="" align="left" style="margin: 12pt 0cm;" id="yui_3_16_0_1_1431531555145_10836"><span lang="EN-GB" style="font-size: 10pt; font-family: 'Courier New';" class="" id="yui_3_16_0_1_1431531555145_10835">A third idea, based on the second idea above is the
following: Something that is missing from the XMPP pubsub model, but is
available in MQTT, is multi-layered publish/subscribe. While implementing a new
context-sensitive pubsub service, this might be something to add. In MQTT you
can listen to a “parent node”, or wildcards, and receive events from all its
(grand*)child nodes for example. Example: Consider you publish a temperature on
node building/floor/apartment/room/temp1. How would you do to listen to all
sensors in that room? Or all sensors in that apartment, floor or building? Or
all temperature sensors in that building (leaving out other kinds of sensors)?
Using a wildcard character (*) you could do this by subscribing to
“building/floor/apartment/room/*”, “building/floor/apartment/*”,
“building/floor/*”, “building/*” and “building/*/*/*/temp*” respectively in one
go. That wo<o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="margin: 12pt 0cm;" id="yui_3_16_0_1_1431531555145_10889"><span lang="EN-GB" style="font-size: 10pt; font-family: 'Courier New';" class="">uld provid<o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="margin: 12pt 0cm;"><span lang="EN-GB" style="font-size: 10pt; font-family: 'Courier New';" class="">e a great way to subscribe to larger sets of contents,
without having to maintain huge amounts of smaller individual subscriptions.<o:p class="" style=""></o:p></span></div>

<div class="" align="left" style=""><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class=""> </span></div>

<div dir="ltr" id="yui_3_16_0_1_1431531555145_10828"><span lang="EN-GB" style="font-size: 12pt; font-family: Helvetica, sans-serif;" id="yui_3_16_0_1_1431531555145_10890">About this idea...have you
thought about the possibility to use collection nodes on the server side, to
implement this? My suggestion for the subscriptions using wildcards is to use
the collection nodes provided by the XEP-0060 (</span><span style="font-size: 12pt; font-family: Helvetica, sans-serif;" id="yui_3_16_0_1_1431531555145_10914"><a href="http://xmpp.org/extensions/xep-0060.html" target="_blank" id="yui_3_16_0_1_1431531555145_10913"><span lang="EN-GB" style="color: rgb(25, 106, 212); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;" id="yui_3_16_0_1_1431531555145_10912">http://xmpp.org/extensions/xep-0060.html</span></a></span><span lang="EN-GB" style="font-size: 12pt; font-family: Helvetica, sans-serif;" id="yui_3_16_0_1_1431531555145_10827">). The idea is to create a
hiearchy of nodes, inserting the ones of the "Things" (leaf nodes) in
collection nodes related with the type of data published or their location.
Then, when the server component receive the subscription containing the
wildcards, it can translate the request in a subscription to the collection
node(s) corresponding with the request.</span></div><div dir="ltr" id="yui_3_16_0_1_1431531555145_10828"><span lang="EN-GB" style="font-size: 12pt; font-family: Helvetica, sans-serif;"><br></span></div><div class="" align="left" style="background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;" id="yui_3_16_0_1_1431531555145_10733"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class="" id="yui_3_16_0_1_1431531555145_10735">Following your example, for the node</span><span lang="EN-GB" style="font-family: 'Courier New';" class=""> temp1:
building/floor/apartment/room/temp1</span><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class="" id="yui_3_16_0_1_1431531555145_10734">, you have this
hiearchy of nodes:<o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;" id="yui_3_16_0_1_1431531555145_10732"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class=""> </span></div>

<div class="" align="left" style="background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;" id="yui_3_16_0_1_1431531555145_10731"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class="" id="yui_3_16_0_1_1431531555145_10736">building (collection) <o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;" id="yui_3_16_0_1_1431531555145_10730"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class="" id="yui_3_16_0_1_1431531555145_10946">   --> floor (collection) <o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;" id="yui_3_16_0_1_1431531555145_10838"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class="" id="yui_3_16_0_1_1431531555145_10837">         -> apartment (collection) <o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;" id="yui_3_16_0_1_1431531555145_10911"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class="" id="yui_3_16_0_1_1431531555145_10910">             -> room (collection)<o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;" id="yui_3_16_0_1_1431531555145_10842"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class="">                -> temp
(collection)<o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;" id="yui_3_16_0_1_1431531555145_10879"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class="">                  -> temp1
(leaf)<o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;" id="yui_3_16_0_1_1431531555145_10724"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class=""> </span></div>

<div class="" align="left" style="background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;" id="yui_3_16_0_1_1431531555145_10840"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class="" id="yui_3_16_0_1_1431531555145_10839">And you can translate the "wildcard" subscriptions in this way:<o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;" id="yui_3_16_0_1_1431531555145_10841"><span lang="EN-GB" style="font-family: Helvetica, sans-serif;" class=""> </span></div>

<div class="" align="left" style="margin: 12pt 0cm; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;" id="yui_3_16_0_1_1431531555145_10844"><span lang="EN-GB" style="font-size: 10pt; font-family: 'Courier New';" class="" id="yui_3_16_0_1_1431531555145_10843">building/floor/apartment/room/*   -> 
subscription to room collection node<o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="margin: 12pt 0cm; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;" id="yui_3_16_0_1_1431531555145_10695"><span lang="EN-GB" style="font-size: 10pt; font-family: 'Courier New';" class="" id="yui_3_16_0_1_1431531555145_10694">building/floor/apartment/*  -> subscription to apartment collection
node<o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="margin: 12pt 0cm; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;" id="yui_3_16_0_1_1431531555145_10909"><span lang="EN-GB" style="font-size: 10pt; font-family: 'Courier New';" class="" id="yui_3_16_0_1_1431531555145_10908">building/floor/* -> subscription to
floor collection node<o:p class="" style=""></o:p></span></div>

<div class="" align="left" style="margin: 12pt 0cm; background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;" id="yui_3_16_0_1_1431531555145_10697"><span lang="EN-GB" style="font-size: 10pt; font-family: 'Courier New';" class="" id="yui_3_16_0_1_1431531555145_10696">building/* -> subscription to building
collection node<o:p class="" style=""></o:p></span></div>

<div dir="ltr" id="yui_3_16_0_1_1431531555145_11017"><span lang="EN-GB" style="font-size: 10pt; font-family: 'Courier New';">building/*/*/*/temp 
-> subscription to all the collection nodes of type temp in inserted
in the building collection node</span></div><blockquote type="cite" id="yui_3_16_0_1_1431531555145_7363" style="font-family: 'Helvetica Neue', 'Segoe UI', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;" class=""><div id="yui_3_16_0_1_1431531555145_7362" style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class=""><div id="yiv0930632748yui_3_16_0_1_1431527716974_10867" class="" style=""><br clear="none" class="" style=""></div><div id="yiv0930632748yui_3_16_0_1_1431527716974_10528" class="" style="">Thanks,</div><div id="yiv0930632748yui_3_16_0_1_1431527716974_10528" dir="ltr" class="" style="">Davide</div></div></blockquote><div></div><div id="yui_3_16_0_1_1431531555145_9463"> </div><div id="yui_3_16_0_1_1431531555145_9278"><div id="yui_3_16_0_1_1431531555145_9277">--
<br>
<br>Davide Conzon
<br>
<br>Istituto Superiore Mario Boella (ISMB)
<br>
<br>via P.C. Boggio, 61 - 10138 Torino (ITALY) tel. (+39) 011.2276.710
<br>
<br>
<br>Informativa - Art. 13 D.lgs. 196/03
<br>==========================
<br>Il trattamento dei dati ha la finalità di permettere lo svolgimento delle attività di ricerca, formazione e studio, oltre agli ulteriori servizi messi a disposizione dall’Istituto Superiore Mario Boella I dati saranno trattati con modalità manuali, informatiche e/o telematiche; non verranno per nessuna ragione comunicati ad altri soggetti ed Enti senza previa autorizzazione. Potranno venire a conoscenza dei Vostri dati il responsabile del trattamento e le categorie di soggetti incaricati del trattamento. In ogni momento potrà rivolgersi al nostro servizio Privacy per conoscere i suoi dati e farli integrare, modificare o cancellare per violazione di legge, od opporsi al loro trattamento e/o per esercitare gli altri diritti previsti dall’art. 7 del D.lgs 196/03. Titolare del trattamento è la società Istituto Superiore Mario Boella con sede in Via P. Carlo Boggio n. 61- 10138 Torino.
<br>All information and attachments are reserved and an Istituto Superiore Mario Boella intellectual property, if you receive this message for error please delete it and contact info@ismb.it.</div></div><br>  <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" id="yui_3_16_0_1_1431531555145_9448"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" id="yui_3_16_0_1_1431531555145_9447"> <div dir="ltr" id="yui_3_16_0_1_1431531555145_9543"> <hr size="1" id="yui_3_16_0_1_1431531555145_9549">  <font size="2" face="Arial" id="yui_3_16_0_1_1431531555145_9551"> <b><span style="font-weight:bold;">Da:</span></b> "Cramer, E.R. (Eelco)" <Eelco.Cramer@tno.nl><br> <b id="yui_3_16_0_1_1431531555145_10878"><span style="font-weight: bold;" id="yui_3_16_0_1_1431531555145_10877">A:</span></b> XMPP in the Internet of Things <iot@xmpp.org> <br> <b><span style="font-weight: bold;">Inviato:</span></b> Giovedì 30 Aprile 2015 10:26<br> <b><span style="font-weight: bold;">Oggetto:</span></b> Re: [IOT] Feedback on pubsub for IoT<br> </font> </div> <div class="y_msg_container" id="yui_3_16_0_1_1431531555145_9446"><br><div id="yiv1701843412"><div id="yui_3_16_0_1_1431531555145_9445">
Hi Peter,
<div class="yiv1701843412" id="yui_3_16_0_1_1431531555145_9542"><br clear="none" class="yiv1701843412">
</div>
<div class="yiv1701843412" id="yui_3_16_0_1_1431531555145_9541">Interesting! Please see my comments below.</div>
<div class="yiv1701843412" id="yui_3_16_0_1_1431531555145_9444"><br clear="none" class="yiv1701843412">
<div id="yui_3_16_0_1_1431531555145_9454">
<blockquote class="yiv1701843412" type="cite" id="yui_3_16_0_1_1431531555145_9453">
<div class="yiv1701843412" id="yui_3_16_0_1_1431531555145_10907">On 29 Apr 2015, at 16:44, Peter Waher <<a rel="nofollow" shape="rect" class="yiv1701843412" ymailto="mailto:Peter.Waher@clayster.com" target="_blank" href="mailto:Peter.Waher@clayster.com">Peter.Waher@clayster.com</a>> wrote:</div>
<br clear="none" class="yiv1701843412Apple-interchange-newline">
<div class="yiv1701843412" id="yui_3_16_0_1_1431531555145_9452">
<div class="yiv1701843412WordSection1" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;" id="yui_3_16_0_1_1431531555145_9451">
<div class="yiv1701843412" style="margin:0cm 0cm 0.0001pt;font-size:12pt;font-family:'Times New Roman', serif;" id="yui_3_16_0_1_1431531555145_9450">
<span class="yiv1701843412" style="color:rgb(31, 73, 125);font-family:Calibri, sans-serif;font-size:11pt;" id="yui_3_16_0_1_1431531555145_9449">The first idea is a slight modification of the approach: Instead of having the dealer subscribe to all nodes. This might require a lot of administrative communication,
 and also a lot of monitoring/supervision for make sure it recovers from different error states. An alternative is to make a component connection (XEP-0114) and publish the dealer as a pubsub server component on the xmpp server, replacing perhaps the “normal”
 pubsub server. In this way, the dealer would not need to maintain all subscriptions, instead, it would be the owner of the nodes itself. Perhaps the added effort here, is comparable or less than the effort needed to subscribe to all events from a pubsub server,
 that as you say, anyway might be lacking in some regards. The dealer could still use the iot-event subscription architecture, and so, there would not be a need to implement that part, since it doesn’t provide subscribers to request tailored sets of data.</span></div>
</div>
</div>
</blockquote>
<div id="yui_3_16_0_1_1431531555145_10906"><br clear="none" class="yiv1701843412">
</div>
<div id="yui_3_16_0_1_1431531555145_9455">This is sort of how I was planning to specify this. Except for the need of the ‘dealer’ to be the ‘owner’ of the device.</div>
<br clear="none" class="yiv1701843412">
<blockquote class="yiv1701843412" type="cite" id="yui_3_16_0_1_1431531555145_9459">
<div class="yiv1701843412WordSection1" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;" id="yui_3_16_0_1_1431531555145_9458">
<div class="yiv1701843412" style="margin:0cm 0cm 0.0001pt;font-size:12pt;font-family:'Times New Roman', serif;" id="yui_3_16_0_1_1431531555145_9457">
<span class="yiv1701843412" lang="EN-US" style="font-size:11pt;font-family:Calibri, sans-serif;color:rgb(31, 73, 125);" id="yui_3_16_0_1_1431531555145_9456">The second idea, is a continuation of the above, but providing a “normal” pubsub subscription interface: Today, the pubsub pattern has a great weakness:
 It’s not possible to adapt contents based on rights for individual subscriptions. You need to publish different sets of content on different nodes, which quickly grows to infinity if you allow fine-grained control, as is the case for IoT. This not only becomes
 complicated, it also quickly removes any gains provided by pubsub, as the basic idea is to reduce the number of packets required for the publisher, to efficiently publish information to a larger set of subscribers. So, while one is creating a component for
 a new type of pubsub service above, you might build in a connection to a provisioning server (XEP-0324), or build in the same functionality in the same component, and use <canRead> to check what type of information is allowed for different subscribers implicitly,
 removing the need for a tailored subscription request, as well as a tailored publication, still tailoring output to each subscriber. That would lift the burden from the device, and provide a completely new type of service: Context sensitive, or individually
 tailored, publish/subscribe.</span></div>
</div>
</blockquote>
<div><br clear="none" class="yiv1701843412">
</div>
<div id="yui_3_16_0_1_1431531555145_10905">In the ‘dealer’ service I was planning to add a ‘canSubscribe’ message in the provisioning protocol. The dealer should send that message to the provisioning to see if a subscription was valid. I like the idea to specify something that makes it as simple
 as possible for Things and subscribers to use.</div>
<div><br clear="none" class="yiv1701843412">
</div>
<blockquote class="yiv1701843412" type="cite" id="yui_3_16_0_1_1431531555145_10904">
<div class="yiv1701843412WordSection1" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;" id="yui_3_16_0_1_1431531555145_10903">
<div class="yiv1701843412" style="margin:0cm 0cm 0.0001pt;font-size:12pt;font-family:'Times New Roman', serif;">
<span class="yiv1701843412" lang="EN-US" style="font-size:11pt;font-family:Calibri, sans-serif;color:rgb(31, 73, 125);"></span></div> 
<div class="yiv1701843412" style="margin:0cm 0cm 0.0001pt;font-size:12pt;font-family:'Times New Roman', serif;" id="yui_3_16_0_1_1431531555145_10902">
<span class="yiv1701843412" lang="EN-US" style="font-size:11pt;font-family:Calibri, sans-serif;color:rgb(31, 73, 125);" id="yui_3_16_0_1_1431531555145_10901">I have thought about implementing the second idea above, myself. I think such a component might have a very important role for the publish/subscribe
 pattern in XMPP, and solves many of the security issues in other pubsub solutions. Would you be interested in investigating this further?</span></div>
</div>
</blockquote>
<div><br clear="none" class="yiv1701843412">
</div>
<div>Sure.</div>
<br clear="none" class="yiv1701843412">
<blockquote class="yiv1701843412" type="cite" id="yui_3_16_0_1_1431531555145_10899">
<div class="yiv1701843412WordSection1" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;" id="yui_3_16_0_1_1431531555145_10898">
<div class="yiv1701843412" style="margin:0cm 0cm 0.0001pt;font-size:12pt;font-family:'Times New Roman', serif;" id="yui_3_16_0_1_1431531555145_10897">
<span class="yiv1701843412" style="color:rgb(31, 73, 125);font-family:Calibri, sans-serif;font-size:11pt;" id="yui_3_16_0_1_1431531555145_10900">A third idea, based on the second idea above is the following: Something that is missing from the XMPP pubsub model, but is available in MQTT, is multi-layered
 publish/subscribe. While implementing a new context-sensitive pubsub service, this might be something to add. In MQTT you can listen to a “parent node”, or wildcards, and receive events from all its (grand*)child nodes for example. Example: Consider you publish
 a temperature on node building/floor/apartment/room/temp1. How would you do to listen to all sensors in that room? Or all sensors in that apartment, floor or building? Or all temperature sensors in that building (leaving out other kinds of sensors)? Using
 a wildcard character (*) you could do this by subscribing to “building/floor/apartment/room/*”, “building/floor/apartment/*”, “building/floor/*”, “building/*” and “building/*/*/*/temp*” respectively in one go. That would provide a great way to subscribe to
 larger sets of contents, without having to maintain huge amounts of smaller individual subscriptions.</span></div>
</div>
</blockquote>
<div id="yui_3_16_0_1_1431531555145_10896"><br clear="none" class="yiv1701843412">
</div>
<div id="yui_3_16_0_1_1431531555145_10895">I agree. This is something that needs to be taken into account.</div>
<div class="qtdSeparateBR"><br><br></div><div class="yiv1701843412yqt0464362068" id="yiv1701843412yqtfd17102"><div id="yui_3_16_0_1_1431531555145_10894"><br clear="none" class="yiv1701843412">
</div>
<div id="yui_3_16_0_1_1431531555145_9550">Thanks,</div>
<div id="yui_3_16_0_1_1431531555145_10893">Eelco</div></div>
</div>
</div>
<div class="yiv1701843412MsoNormal" style="MARGIN:0cm 0cm 0pt;" id="yui_3_16_0_1_1431531555145_10892"><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:8pt;">  </span></div><font style="FONT-SIZE:11px;" size="3">
</font><div class="yiv1701843412MsoNormal" style="MARGIN:0cm 0cm 0pt;" id="yui_3_16_0_1_1431531555145_9462"><font style="FONT-SIZE:11px;" size="3" id="yui_3_16_0_1_1431531555145_9461"><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:8pt;" id="yui_3_16_0_1_1431531555145_9460">This message may contain information that is not intended for you. If you are not the addressee or if this message was sent to you by mistake, you are requested to inform the sender and delete the message. TNO accepts no liability for the content of this e-mail, for the manner in which you use it and for damage of any kind resulting from the risks inherent to the electronic transmission of messages.</span></font></div><div class="yiv1701843412yqt0464362068" id="yiv1701843412yqtfd17633"><font style="FONT-SIZE:11px;" size="3"><br clear="none"><br clear="none"></font></div></div></div><br><div class="yqt0464362068" id="yqtfd71966">_______________________________________________<br clear="none">IOT mailing list<br clear="none"><a shape="rect" ymailto="mailto:IOT@xmpp.org" href="mailto:IOT@xmpp.org">IOT@xmpp.org</a><br clear="none"><a shape="rect" href="http://mail.jabber.org/mailman/listinfo/iot" target="_blank" id="yui_3_16_0_1_1431531555145_10891">http://mail.jabber.org/mailman/listinfo/iot</a><br clear="none"></div><br><br></div> </div> </div>  </div></body></html>