At last week's face-to-face we discussed the possibility of
switching the command data format for proposed HCE protocol from a binary,
byte-stream-based format to an XML-based format. Rather than make any hasty
changes to the current proposal, I wanted to air this explicitly on this
mailing list and give everyone (particularly those who weren’t present
last week) a chance to voice whatever concerns they might have.
I believe there was some consensus that this was a good idea
so long as we kept it to a simple description of the data (perhaps leveraging
some existing standard).
However, at some point on Thursday Harm raised the
possibility that there are scenarios in which it is necessary to send large
amounts of binary data on the command channel. I would have serious
reservations about using XML some of the time but occasionally switching to
binary, but if someone familiar with this case can propose something reasonable,
I'm willing to listen.
We agreed, I think, on Friday that this would apply only to
the command header and command data, not to the message envelope (which is
specific to the transport layer being used).
One concern I have is that if we use XML to describe command
data, I want to be sure we have very clearly defined rules for how and when
additional fields can be added, including the expected behavior if a command
with the new data is sent to an object that isn't expecting it (i.e. what are
the implications of ignoring the data) and the expected behavior if a command
without the data is sent to an object that is looking for it (i.e. what is the
default).
I don't want the interfaces to become amorphous.
Other comments?
Should we switch to XML-based command data?