DR201, DR202 and DR203: Programming Language Bindings

DR201,202 and 205 all relate to programming language bindings.

	DR 201 states "...There will be straightforward mappings of the data
types used to a wide variety of widely deployed programming languages and
object systems." 

I am concerned that we have some sense of canonical representation on the
wire that has well understood semantics. It's not clear to me that the XP-WG
will define language bindings for any particular programming languages...
indeed I would advocated not. However, merely requiring the existence of
"straightforward mappings" does not necessarily lead to a single mapping for
a given programming language. I think the important thing is the
representation and meaning of information on the wire rather than how that
same information is represented by a particular language binding to a given
programming language.

	DR 202 "The XML Protocol will allow applications to include custom
encodings for data types used for parameters and results in RPC messages.
Mechanisms for automatically binding data represented in RPC messages to
native constructs in a programming language will not be precluded."

This seems to be a statement of two requirements, one in each sentence. The
first is a requirement to allow custom encodings for parameters and results.
Given a need to define define meaning from an on the wire point-of-view, I
am concerned about the interoperability issues that will arise through the
'rampant' use of custom encodings - will there be mechanisms that enable the
initiator of an interaction to determine which (non-default) encoding to use
in a request message?

I would also be inclined to delete the second sentence of DR 202.

	DR203 "The XML Protocol will guarantee that RPC messages that encode
parameters and results using the default encoding for the base set of data
types will be valid for any conformant binding of the RPC conventions.
"Valid" in this context means that the semantics of the call should remain
identical, irrespective of the programming language or object system used by
the caller or receiver."

I share Noah's concern [1] that we define semantics from the point-of-view
of what is represented on the wire and the need for clarity over the
difference between 'programming language' bindings and 'transport protocol'
bindings. On first reading I thought that this requirement was oriented
around the preservation of programming language invocation semantics (in a
distributed cross language environment) rather than the programming language
independent semantics of the request and response XP messages. I think that
this requirement could be re-worded to reflect a wire oriented view rather
than a PL oriented view.

Regards

Stuart Williams

[1] http://lists.w3.org/Archives/Public/xml-dist-app/2000Nov/0051.html

Received on Tuesday, 14 November 2000 14:02:17 UTC