[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
MIME as a vCalendar element separator - bad move...
Perhaps I haven't been following all this back-and-forth about the content
format with the attention I should have. I attended the session in July at
Netscape where the Versit and Microsoft folks were tasked with merging their
two content submissions. I seem to recall something about getting done in
"two weeks".
Well, now it's December, I'm freezing my tush off here in upstate New York,
wishing I was going to be at the meeting next week so I could warm up a
little, join in the fray and knock some heads together. Alas, that's not to
be, so I'll offer my viewpoint here and trust someone else who does attend
will chime in on my behalf.
In its simplest form MIME as nothing more than an envelope. I can take my
virtual Christmas card, stuff it in a virtual MIME envelope, address it, and
hand it to my virtual postal carrier. When it gets to the addressee, he
opens his virtual envelope and reads the card.
Of course MIME is really a bit more than an envelope. It's also a separator
device and a transport compatibility device, designed to keep the elements
of a collection of virtual documents apart, identify their content, and
ensure all the bits get to their destination untwiddled.
Stepping out the virtual world for a moment, but remaining hypothetical, if
my mom sends me a care package at school, it might contain a box of homemade
cookies, a couple jars of peanut butter, a Monopoly game, a picture of my
nephew, and a letter. The packaging might include a box, an envelope or
two, tin foil for the cookies, jars for the peanut butter, and some old
newspapers to keep everything from sloshing around in the box. In a virtual
world, MIME is not just the box. It's the jars, the envelopes, the tin foil
and the stuffing as well.
This is where I think there is some confusion. My mom had to put the
Monopoly game in the care package. She didn't have to open up the game and
insert a bunch of separators to keep the $50 bills separate from the Chance
cards. That was Parker Brothers' job.
Now return to the actual problem at hand. vCalendar is a compound document
format. It uses BEGIN/END blocks to separate the various subsections of
each document. Because it's self-contained, you can easily stuff it into
lots of different kinds of envelopes without disturbing it. You can throw a
MIME wrapper around it and email it over the Internet. You can also wrap it
in little infrared photons and send it over an IrDA link.
If you require MIME to separate the various parts of a vCalendar object it
becomes much more difficult to deal with in toto. MIME becomes sort of a
cancerous envelope and it requires significant surgery extract the letter
intact. If I want to send a vCalendar/MIME object over an IrDA link I wind
up either disassembling it and reassembling it using different separators to
send over the link, or suffer with the transmission overhead on the slowish
IrDA link and try to shoehorn a MIME decoder into my PIM.
Lets consider another example. Suppose we formed an IETF working group to
work on the difficult problem of exchanging CAD information. Up steps
AutoCAD and says, "Hey gang! We have this super object format called DXF
that will do everything you need already. Just define a new MIME type to
encapsulate it and you're done." Are you going to go tear apart DXF and
replace its existing grouping with MIME? You could I suppose, but it would
probably be a very poor move.
How about one more example (last one, I promise)? Suppose I want to mail
you a GIF image of my dog. How realistic is it to separate the GIF header
from the image bits using MIME? Not very. Would it do any good? Probably
not.
The different elements of a multi-part MIME document are typically processed
by separate applications. I realize some applications can handle more than
one MIME type, but that's the exception. A vCalendar object is handled by a
single application.
It's important to realize where the envelope ends and the letter begins.
It's a bit tempting to try and use MIME as a general-purpose separator for
compound document formats that happen to be easily readable because they
only use printable ASCII (or ISO) characters. Most of us would never dream
of chopping up binary formats like GIF or DXF using MIME. Why should we
chop up vCalendar into MIME-separated pieces because we can view vCalendars
with a text editor?
In summary, vCalendar is an excellent starting point for the a common
content type for scheduling applications. It may need some tweaking, but
don't gut it. MIME is an excellent envelope format. Don't abuse its
capabilities just because it's possible. That doesn't make it the right
thing to do.
Best of luck next week.
Skip Montanaro | Musi-Cal: http://concerts.calendar.com/
skip@calendar.com | "It doesn't matter where you get your appetite as
(518)372-5583 | long as you eat at home." -- Sloan Wainwright