[Standards-JIG] changes to JEP-0138 (Stream Compression)?

Stephen Pendleton spendleton at movsoftware.com
Fri Mar 25 21:15:06 UTC 2005


I did write up some suggestions (below). My problem with 0138 is that it
only supports zlib compression. There are no provisions for other
compression methods or compression levels. It think that stream compression
should be setup using feature negotiation.

----------------
After reading through the JEP-0138, I would like to submit some ideas on
this to the jdev community.  As was mentioned before on the list many mobile
clients have limited processing and/or memory requirements that may preclude
the use of zlib at certain compression levels. For example, zlib compression
at level 3 may perform well on a typical cellphone, but level 9 may produce
unacceptable performance. It seems to me that this would be a excellent use
case of JEP-0020 (feature negotiation) to find out what compression levels
and/or methods (zlib, bzip, foozip, etc) are supported on the endpoints.

A sample session is described below:

CLIENT (query server for features):
<iq
    type='get'
    from='[EMAIL PROTECTED]/imov'
    to='movcast.movsoftware.com'
    id='neg1'>
  <query xmlns='http://jabber.org/protocol/disco#info'/>
</iq>

SERVER (sends back a negotiable feature list):
<iq
    type='result'
    from='movcast.movsoftware.com'
    to='[EMAIL PROTECTED]/imov'
    id='neg1'>
  <query xmlns='http://jabber.org/protocol/disco#info'>
    ...
    <feature var='http://jabber.org/protocol/feature-neg'/>
    <feature var='zlib-compression-level'/>
    <feature var='foobar-compression-level'/>
    ...
  </query>
</iq>

CLIENT (asks to negotiate zlib type compression):
<iq
    type='get'
    from='[EMAIL PROTECTED]/imov'
    to='movcast.movsoftware.com'
    id='neg2'>
  <query xmlns='http://jabber.org/protocol/feature-neg'>
    <x xmlns='jabber:x:data' type='submit'>
      <field var='zlib-compression-level'/>
    </x>
  </query>
</iq>

SERVER (server supports both levels 1 and 2 of the zlib compression
protocol):
<iq
    type='result'
    from='movcast.movsoftware.com'
    to='[EMAIL PROTECTED]/imov'
    id='neg2'>
  <query xmlns='http://jabber.org/protocol/feature-neg'>
    <x xmlns='jabber:x:data' type='result'>
      <field var='zlib-compression-level' type='form'>
        <option><value>1</value></option>
        <option><value>2</value></option>
      </field>
    </x>
  </query>
</iq>


CLIENT (the client selects level 2 of zlib compression):
<iq type="result" id="1" to='movcast.movsoftware.com'>
  <query xmlns="http://jabber.org/protocol/feature-neg";>
    <x xmlns="jabber:x:data">
      <field var='zlib-compression-level'>
        <value>2</value>
      </field>    
    </x>
  </query>
</iq>

CLIENT (the client must now initiate a new stream using the new compression)
<stream:stream
    xmlns='jabber:client'
    xmlns:stream='http://etherx.jabber.org/streams'
    to='movcast.movsoftware.com'>

Any feedback on this scheme would be welcome.

-----Original Message-----
From: standards-jig-bounces at jabber.org
[mailto:standards-jig-bounces at jabber.org] On Behalf Of Peter Saint-Andre
Sent: Friday, March 25, 2005 3:28 PM
To: standards-jig at jabber.org
Subject: [Standards-JIG] changes to JEP-0138 (Stream Compression)?


I just noticed that JEP-0138 (Stream Compression) was last updated on
2004-09-28 and therefore is due to be automatically deprecated soon.
However, I know we've discussed some potential changes to this JEP. I will
go back over the list archives to formulate a list of suggested changes, but
if anyone else has requests, please send them along.

Thanks.

http://www.jabber.org/jeps/jep-0138.html

Peter

-- 
Peter Saint-Andre
Jabber Software Foundation http://www.jabber.org/people/stpeter.shtml

_______________________________________________
Standards-JIG mailing list
Standards-JIG at jabber.org
http://mail.jabber.org/mailman/listinfo/standards-jig






More information about the Standards mailing list