[JDEV] File transfer and Jabber

Jens Alfke jens at mac.com
Mon Apr 23 13:06:49 CDT 2001


On Monday, April 23, 2001, at 07:14 AM, Iain Shigeoka wrote:

> I believe that if Jabber client developers want to see Jabber grow to 
> the popularity of a system like AIM we need to consider what a Jabber 
> system with 1 million users would look like and how to make that 
> practical.

On the other hand, one of the goals of Jabber is to be more distributed, 
so that unlike existing monolithic services, not everyone in the world 
has to connect to the same server. Your ISP will have a Jabber server, 
my employer will have one, et cetera. There may be huge ISPs that have 
millions of users, but they already have phat pipes and massively 
replicated servers.

> In-band file transfers are just not feasible using this approach.

Again, I disagree. The Jabber architecture is very much like SMTP, and 
SMTP servers have been handling "in-band" file transfers for decades. 
Even huge ISPs and mail services accept file enclosures, although they 
may impose limits on the file size.

> How about this for a proposal.  Define specifications for a separate 
> oob server.  To make it simple to convert any web server into a 
> compliant oob server, we define the system using only httpd.  It 
> accepts file uploads given authentication, and allows file downloads 
> using temporary URL links.

I don't see how this does anything but move the supposedly-intolerable 
burden of file transfer from one server onto another.

In any case, if we do design a relay server, I would prefer to see a 
more efficient solution where the server directly streams data from one 
client to another rather than having to store-and-forward the entire 
file.

>  Part of the standard should be incentives to run oob servers by people 
> other than Jabber.

Well, this just sort of sweeps the issue under the rug by making it 
someone else's responsibility.

And anyway, who are "people other than Jabber" Or rather, who is 
"Jabber"? Jabber is a service that anyone can run. I repeat: when Jabber 
takes off it's not just going to be jabber.org and jabber.com hosting 
everyone in the world. Jabber will be a distributed piece of the 
infrastructure just like SMTP or HTTP.

In general I think this fear of in-band transfer performance is a 
classic example of premature optimization. When you're designing a large 
system you don't start off by guessing that something is going to be a 
bottleneck and immediately build an optimization ahead of time instead 
(especially not an optimization, like jabber:x:oob, that handles only 
the special case without firewalls or NAT). You build the basic, most 
robust case, then if it does turn out to be a bottleneck you add 
optimizations for specific circumstances.

—Jens
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: text/enriched
Size: 3008 bytes
Desc: not available
URL: <https://www.jabber.org/jdev/attachments/20010423/3e9075ae/attachment-0002.bin>


More information about the JDev mailing list