[Mix06] The Value Of A Partial Message With Indigo

0 comments suggest edit

I was involved in a 5 AM breakfast conversation (a little late night snack before we all turned in for the evening) with Clemens Vasters, Steve Maine, and some others at Mix06 in which they explained how streaming content works with WCF (code named Indigo).

They pointed out (as I mentioned in a tongue-in-cheek context in my last post) that with streaming content such as streaming videos, the consumer of the media is really concerned about headers and start tags, because they plan on using the content as it flows over the wire.

In effect, streaming works because WCF promises to send the end tags eventually. Might be hours from now. Might even be years from now. But they will get sent and the message (as everything is a message in WCF) will be well formed and complete.

Clemens then pointed out that even if they never did send the end tags, what would it matter? The consumer of the feed, if he or she is exceedingly anal, could decide to throw an exception then. But at that point, the content has already served its purpose and has been consumed. Remember, we are talking about the streaming content use case.

This struck me with two thoughts. This is a software scenario where the intent is more important than the execution. The fact is that they intend to send the end tags is very important, but whether they actually do or not is of less importance.

Secondly, with streaming content, the valuable deliverable is not a whole message but a partial message. By message I mean the entire content and whatever SOAP envelope it may be wrapped in.

Of course, the key to streaming content producers is to make sure to send any meta-data and commercials at the beginning of the message and not after the streaming part. But you knew that already. ;)

Found a typo or error? Suggest an edit! If accepted, your contribution is listed automatically here.



4 responses

  1. Avatar for Scott
    Scott March 23rd, 2006

    Consider if you didn't receive the ending tags in a non-streaming message but you did receive a complete payload. Would they ending tag still matter? How about the begining tags?

  2. Avatar for Haacked
    Haacked March 23rd, 2006

    It might if you needed to load the message in a DOM and examine various nodes. Also, without the end tags, are you sure you got the whole message?

  3. Avatar for Steve Harman
    Steve Harman March 23rd, 2006

    Ah, touché.
    Question - What about a consumer of one of these stream who was just listening in on the stream... perhaps trying to record the stream to be saved off for later use. It would seem that they would need to append/insert any missing closing tags so that the file would be readable later. Think of something like podCasting. At the point that you playback a previously recorded file, aren't you now sort of the "broadcaster".
    Question 1.1 - Are the originators of these streams alloted the same flexability with closing tags as the consumers are? I would ASSume not, b/c you would still want to ensure that at broadcast time, you have the full content.
    Something to ponder anyhow...

  4. Avatar for Haacked
    Haacked March 24th, 2006

    Well I'm no expert in streaming, but I don't think it's necessary. Remember, the start and end tags I refer to mostly have to do with the messaging as part of the network communication. You probably wouldn't save the SOAP headers to disk for example.
    Though you might if you were simply forwarding that message.