Lists Home |
Date Index |
I must admit that I'm a bit confused by the concerns that were
expressed about the dangers of having more than one or two
interchangeable concrete syntaxes. There seemed to have been people
who were afraid that this would somehow cause problems of
interoperability... Yet, the issue of multiple concrete syntaxes is
very similar to issues that we've often successfully dealt with in
many other protocols. The solution is simple: Define minimum
functionality and then allow for negotiation to establish
This is the model that is used with things like SASL. While
SASL allows a wide variety of methods to deal with authentication or
confidentiality, well written specifications that rely on SASL
typically state that while implementations are free to use any method
that supports SASL, they MUST implement some minimum set. For example,
in the APEX specification (RFC-3340), it is said that while
alternatives are possible, all conforming implementations must support
at least TLS_RSA_WITH_3DES_EDE_CBC_SHA. See Section 11 of RFC-3340.
Why can't we solve this multiple syntax issue in the same way?
Simply write specifications that require that conforming
implementations MUST support the XML encoding but MAY also support
Such a rule would allow me to write a server (actually we're
already doing this) that can "talk XML" to just about anyone, but will
allow clients that I write to conserve bandwidth by communicating in
the very compact PER encoding. As far as my code is concerned, since
I'm using an ASN.1 based system, there is no difference between the
XML and the PER. As far as others are concerned, they don't have to
know that I support PER today or might support some other binary
format tommorrow. People who like XML see an XML service, people who
like compact encodings get to send and receive binary PER.
Why are multiple encodings a problem as long as a common
encoding is provided to allow interoperability?