On Wed Apr  9 00:35:30 2008, Peter Saint-Andre wrote:
Pedro Melo wrote:
>
> On Apr 4, 2008, at 9:04 PM, Dave Cridland wrote:
>> On Fri Apr  4 15:55:26 2008, Philipp Hancke wrote:
>>>> If we solve scalability in MUC and PubSub - and I think we can
>>>> *without* repeaters, and I think that repeaters are not well
>>>> understood, and may cause greater harm than good - then I think this >>>> is way beyond good enough. I believe that for both MUC and PubSub,
>>>> using a slave entity which passes on subscriptions to a master
>>>> entity, and manages
>>> may pass on for "open" nodes ;-)
>> I think MUST at all times.
>>
>> First off, open nodes should get the statistics. This is arguably a >> political choice rather than technical, but I suspect that if a feed >> publisher knows there are several million subscribers, they'll make
>> more effort in their XMPP strategy.
>>
>> There is the technical argument that is that the policy of the node
>> should be handled by the node, and not by a proxy.
>
> Sure, but if a node owner is ok delegating the subscriber policy to the
> remote proxies, why should a future spec prevent that?

How do I know that a subscription request comes from a proxy? Does my pubsub service need to send a disco#info request to each subscriber in order to determine its identity, then ask me to approve the subscription
request if it comes from a proxy?


I think the subscription request would be marked, to indicate that the subscription request was from a proxy. This in turn suggests that the proxy service needs to disco the master service. What I actually see happening is:

a) Client sends initial request to an unknown service.
b) Local server intercepts this, and does disco to unknown service. If it's a master-capable service, then the client's request is modified to include a proxy. c) Remote service responds - if this is a proxy request, and the remote service doesn't wish to have it involved, it can say so at this point. d) Remote service sends out data, either to proxy service or to user directly as required.

Note I've carefully avoided saying either of "MUC directed presence" or "PubSub subscription" - the model itself applies to both equally, although its implementation and syntax will differ.

What I'm particularly interested in is whether some of this disco can be elided by the use of the feature-level XEP-0115.


> Better: when I send a message to a remote proxy I could ask for a
> "delivery report" message back, stating how many JIDs the message was
> resent to.
>
> So I can get one report per message I send and keep my bean-counters
> happy. I know the reach of each message.
>
> This could be an option in the initial response to the subscribe request
> by the proxy or a per-message flag somewhere.

I'd prefer it as a subscription option, because it's not *really*
something you care about for each message, I think.


I'd have thought that, if the master is always aware of the numbers of subscriptions, this is less important. It could be, though, that errors are passed back.

I tend to agree that the most interesting use cases here are MUC and
pubsub. Now, you could argue that MUC is just a specialized form of
pubsub, but in reality it's different enough that we may need to handle
it separately.


I think they are the same in most respects, but the syntax differs. MUC+PubSub can be handled by the same protocol model in different guises.


Presence is just a specialized form of pubsub, too, as has been pointed out many times before. But I'm not yet convinced that we need to tweak
presence much.


The trouble is, I disagree - presence has a different model, because privacy lists and directed presence lead to a distinction between subscriber and receiver.


Generalized solutions are appealing, but there's always the danger of
over-generalizing.


In general, one should never over-generalize.

As I see it, MUC and pubsub already can be multicasted if you don't mind having bots in your MUC rooms and pubsub services subscribed to pubsub
nodes. Send to the bot or proxy and it distributes messages on the
remote end. You can even chain those together. Granted we might want
more elegant solutions, but these might be enough to get the job done
for a while.


Indeed, and what we're talking about is just refining this a bit.


Another approach: when you try to join a room or subscribe to a node, you are redirect to the local slave/proxy. We'd need better support for
the redirect error but that seems doable.


I think we intercept, mimic, and fool the client into thinking it's talking to the master service at all times.

Dave.
--
Dave Cridland - mailto:[EMAIL PROTECTED] - xmpp:[EMAIL PROTECTED]
 - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
 - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade

Reply via email to