[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: Re: Feedback on the MSS draft - content issues
Steve,
Thanks for the great feedbcak/comments. My thoughts below avec <cbf>.
Cheers,
Chris
Steve Hole wrote:
>
> 1. Issue: Mandatory use of the Content-Length header in all parts of the message.
>
> Discussion:
> The Content-Length header has turned out to be one of the big
> mistakes in the MIME world. There are several problems that
> have been encountered with it when people try to use it:
>
> * It defeats streaming data dumps. It is often the requirement
> that messages are constructed by "streaming" generators that do
> not know how big the data is that will be included in the
> output message. To get proper calculations, the size of the
> output body part AND of the entire message must be calculated
> by processing the entire body part before the MIME headers are
> written, then writing the final MIME data. This is *very*
> inefficient.
>
> * Content-Encodings change the size of the content over the wire
> and receiving agents often use the Content-Length to
> incorrectly calculate receiving buffer sizes. Clearly, this
> is a "weak implementation issue", but the effect is that
> software breaks badly.
>
> As such, Content-Length has been officially frowned upon and was
> seriously considered for removal from the standards track by the
> DRUMS working group.
>
> There is work to provide alternative advice headers for media
> representations like VPIM (Voice Profile of Internet Mail) that
> would advise receiving agents as to the apparent content size of
> a message. These are expressed not in bytes, but in time
> increments.
>
> Proposed Solution
> Remove requirement for mandatory Content-Length header. Make it
> nothing stronger than a MAY.
<cbf>
As Rik points out, we are planning on addressing this in our next
phase. Your points are well taken.
</cbf>
>
> 2. Issue:
> Use of "charset" parameter in toplevel multipart/related body part.
>
> Discussion: The "charset" parameter should never be used in a
> mulitpart/{mumble} part. The charset parameter is legal only on
> "text/{mumble}" content types. It would not provide useful
> information for a multipart type in any case. In addition, the
> draft specifies that the default charset type is "iso-8859-1",
> which is not in fact true. The default charset for MIME is
> "us-ascii".
>
> Proposed Solution:
> Do not include charset parameter in any part other than text/{mumble} parts.
<cbf>
In the current version (v0.21d) it is omitted. It was intended to be removed
earlier, but somehow we missed the edit even after we agreed to remove it.
</cbf>
>
> 3. Issue:
> Specification of "version" attribute for multipart/related body part
>
> Discussion:
> This issue is raised based on the experience had with MIME
> itself. The MIME-Version header is effectively useless because
> there is no semantic difference between a receiving agent being
> unable to handle a new version of a MIME representation and a
> completely different MIME representation. All the version tag
> does is add an additional registration requirement to the
> requirement to specify the new contract.
>
> There are two approaches to handling new semantics in a content
> representation.
>
> (1) Define an entirely new representation type.
> (2) Define an extension mechanism for a base representation type.
>
> The selection on which is use is, in fact, quite easy. If you
> wish to deprecated functionality (make it more restrictive) then
> use (1). If you wish to extend functionality use (2), or if the
> extensions are very extensive, use (1).
>
> The important thing to remember is that, if you can't handle
> "application/ebxml version=2" then that is exactly equivalent to not being
> able to handle "application/ebxml-on-steriods". Relieve
> yourself of the requirement to manage the version number
> increments and just build new types.
>
> <my-personal-opinion>
> It is impossible to get everything right the first time -- thus
> the desire for version numbers. My belief is that you should be
> able to arrive a situation where all you need to do to "fix"
> things in the future is add (extend) functionality. Thus, keep
> it simple to start with and add the things you need that are
> proven to be needed in the future. It is a very good idea to
> design for extensions, it will save you much heartache later.
>
> Very much the minimalist IETF approach, but proven to work well.
> </my-personal-opinion>
>
> Proposed Solution:
> Do not specify a version parameter in the Content-Type header.
> If a new version is required then define a new "root" MIME
> content type for the multipart/related that has the new
> semantics. If extensions are required with no deprecations, then
> define an extension mechanism for the root content type.
<cbf>
Good point. The version attribute is intended to reflect the version
of the "packaging" which is MIME multipart/related with a specific
overall organization (single header container and single payload
container which may itself be of type MIME miltipart/*. Given that
distinction and your eloquent discussion, it is likely that your option (1)
would be appropriate for our use rather than to use a version attribute.
We will likely discuss this at our next face2face.
</cbf>
>
> 4. Issue:
> Specification of "version" attribute for application/vnd.eb+xml body part
>
> Discussion:
> See the discussion for issue 3.
>
> Proposed Solution:
> Do not specify a version parameter in the Content-Type header.
> Put version information in the XML payload itself if you must,
> but it would be preferrable to provide either a new XML type or
> an extension mechanism in XML type.
>
> ---
> Steve Hole
> Messaging Direct
> Mailto:Steve.Hole@MessagingDirect.com
> Phone: 780-424-4922
--
_/_/_/_/ _/ _/ _/ _/ Christopher Ferris - Enterprise Architect
_/ _/ _/ _/_/ _/ Phone: 781-442-3063 or x23063
_/_/_/_/ _/ _/ _/ _/ _/ Email: chris.ferris@East.Sun.COM
_/ _/ _/ _/ _/_/ Sun Microsystems, Mailstop: UBUR03-313
_/_/_/_/ _/_/_/ _/ _/ 1 Network Drive Burlington, MA 01803-0903
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC