[Foundation] Call For Arbitration: File Transfer

Ryan Eatmon reatmon at jabber.org
Tue Aug 26 06:12:41 CDT 2003

Justin Karneges wrote:
> On Monday 25 August 2003 11:05 am, Ryan Eatmon wrote:


>>3) How do you handle a failure during a stream transfer?
>>REL requires that you try and send the file again and again until it
>>succeeds, or you hit a keep alive limit.
>>SI just stops and the file is not transfered.  It is left up to the user to
>>resend it.
>>It is simple enough for an author to support automation within their Client
>>without requiring it in the protocol.
> Could you explain how you plan to automate this?  It has been noted repeatedly 
> by Aleksey and myself that SI is not capable of doing this properly.  I don't 
> see how a council meeting makes the problem magically disappear.
> I already proposed a solution for this, which is to add an optional 
> <keepAlive/> element into <si> that behaves just like REL's.  However, this 
> has yet to be added into JEP-95.

Basically, all you really care about is the automation on your side of 
the connection.  If your client detects a failure and you are the 
sender, then you just resend the stream back to the other side until 
they get tired of you trying to send the file and elect not to accept 
it, or it transmits successfully.  You can also vary the methods of 
transmission that you send to them as well as which stream hosts you use 
for the bytestreams JEP.

As a receiver in the above, if I don't support automation then I will 
present the user with a new dialog for each new attempt.  Or I can code 
up something to keep track of previous profiles and use the 
filename/size/md5 as a key to see that I already accepted it and not 
present the user with a dialog.

There is no reason to make everyone's life complicated by requiring them 
to support automation via the protocol.  All you have to do is support 
it on your side.

>>We have also discussed a few other Profiles that we think would be simple
>>to create using this methodology, one of them being JEP-105 Tree Transfer
>>Stream Initiation Profile for transferring entire directory structures and
>>not just single files at a time.
> As I stated in a previous email to standards-jig regarding JEP-105:
> "Maybe I'm dense, but why is this even an SI profile?  It doesn't appear to 
> use a stream at all."

This depends on how you define a stream.  If you expand your definition 
of a stream to include a stream of streams (is that a river?) then you 
can see that it uses SI/Profiles to establish multiple child streams in 
one go.  If you accept being sent the directory structure, and you pick 
the method, you just automatically accepted N streams.

As the author I know I'm biased, but I think it's a pretty cool little 
trick.  Just have to find time to implement it.  Maybe I'll do that today.

> -Justin
> _______________________________________________
> Members mailing list
> Members at jabber.org
> http://mailman.jabber.org/listinfo/members

Ryan Eatmon
reatmon at jabber.org

More information about the Members mailing list