W3C home > Mailing lists > Public > public-ws-addressing@w3.org > November 2004

Re: i0001: EPRs as identifiers

From: Hugo Haas <hugo@w3.org>
Date: Mon, 15 Nov 2004 10:43:00 -0500
To: David Orchard <dorchard@bea.com>
Cc: public-ws-addressing@w3.org
Message-ID: <20041115154300.GG8129@w3.org>
Hi Dave.

Nicely structured comparisons. Please see some comments below.

* David Orchard <dorchard@bea.com> [2004-11-12 22:13-0800]
> Comparison of Variations.
> This comparison uses the Architecture properties of Key interest section
> from Dr. Fielding's thesis [2] as the criteria for evaluating these 2
> styles.  This is based upon the network characteristics of the
> architectures.  Note that the thesis specifically excludes those
> properties that are of interest to software architectures.
> Simplicity
> Advantages of EPRs
> Web services are based upon XML.  Many applications use XML as the
> mechanisms for identifying their components.  The binding of XML into
> URIs is not standardized and potentially problematic, some of the issues
> being: 
> - XML contains QNames as element names, attribute names, and content.
> QNames are based upon absolute URIs.  URIs in URIs is not simple.
> - XML elements can have multiple children at all levels, whereas URIs
> have path hierarchy that ends in a multiple children query parameters.
> - The XML information model is complex with attributes, elements, PIs,
> comments, entity references and whitespace.  These do not match well to
> URIs.
> - Character encodings are different between XML and URIs.
> - URIs have potential length restrictions
> - URIs have different security properties than SOAP header blocks, such
> as level of encryption and signing.
> XML applications that use XML for identification will probably be
> simpler to write with EPRs than with URI only identifiers.  This
> includes SOAP tools and XML tools.
> Advantages of URIs
> In many cases, the complexity of XML is not needed for the identifier,
> as shown in example 2b.  This enables the web service to be "on the Web"
> as an HTTP GET can be used to retrieve a representation of the state of
> the resource.  This also enables much of the web infrastructure to
> operate, such as caching intermediaries, security firewalls, etc..  This
> can lead to easier to debug systems (a web browser can retrieve the
> state for a human)..  

While it is true that mapping XML to URIs is hard and impractical, why
do reference properties need to be URIs?

They are identifiers used for routing for the service use, the service
provider can arbitrarily decide about their name and format, and the
URI syntax is likely to be sufficient.

Therefore, EPRs _introduce_ complexity by introducing a new
identification mechanisms. In order to talk about something on the Web
that would use Web services technologies, we would then need more than
just a URI: we would need a URI plus a bunch of XML.

Let's assume that I want to use XForms as an interface to my Web
service. The submission element uses a URI for the destination of its
action, which means that XForms would not be usable with reference
properties. Pick any specification from the TR page and you're likely
to reach the same conclusion.

Also, what about if I want to tell you about the address of my cool
service? Pasting a URI in an email is much simpler than pasting some

Therefore, the introduction of EPRs as identifiers will have a very
high cost.

> Evolvability
> Advantage of EPRs
> Separating the reference property from the URI may make it easier for
> service components to evolve.  A service component may know nothing
> about the deployment address of the service from the reference
> properties.  This effectively separates the concerns of identifiers into
> externally visible and evolvable from the internally visible and
> evolvable.  For example, a dispatcher could evolve the format it uses
> for reference properties without concern of the URI related software.
> The use of SOAP tools - for parsing the soap header for the reference
> properties - or xml tools - such as an xpath expression on the message -
> allow separate evolvability of components.  
> Advantage of URIs
> No advantage to URIs for evolvability.  

I believe that your analysis presupposes that what you call the
service component sits at a particular externally visible URI and
routes to a service which is only internally visible based on XML.

Web servers do routing based on URIs all the time: when I contact
www.w3.org on port 80 and I ask for http://www.w3.org/2002/ws/addr/,
the Web server serves me data that it may have gotten from
/wwwroot/2002/ws/addr/Overview.html on the filesystem, or from
/wwwroot/2002/ws/addr/index.html, or from some other place, or from a
Perl script that it found again somewhere else on the filesystem, or
that it's proxying from another machine, etc.

Similarly, programs that the Web server may invoke can do similar URI
routing. One can change the program and its location without changing
the URI and vice-versa.

Therefore, I don't believe that the external view of the URI is
tightly coupled to the internal representation and that URIs are an
obstacle to evolvability. It all depends on the implementation.

> Real-World
> Advantage of EPRs
> It is useful to examine not only theoretical architectures properties
> but real-world deployed architectures.  A significant portion of the Web
> is deployed with stateful web components that use HTTP Cookies to
> contain session or state identifying information.  For a variety of
> reasons, typically those detailed previously, application developers
> have chosen to use HTTP Cookies to contain identifying information in
> addition to URIs.  
> Additionally, a variety of efforts have been undertaken to facilitate
> mapping of XML and QNames to URIs, such as WSDL 2.0 HTTP Binding.  There
> does not appear to be substantial product group interest in these
> technologies.  
> Advantage of URIs
> The subset of the Web that is "on the Web", that is has a URI that is
> dereferenceable, is clearly widely scalable, deployed, etc.

I believe that cookies do not come in the picture of identifying a
service, but of carrying state (RFC 2109 is about state management).

I believe that this argument works for reference parameters, that do
not service to identify a service: WS-Addressing says that they refer
to endpoints that have the same "associated metadata".

> Conclusion
> This has shown that the choice of EPRs with Reference Properties versus
> EPRs without reference properties is a complex choice best left to the
> application developer.  As they have the choice with a Web of HTTP URIs
> and HTTP Cookies today, WS-Addressing gives Web service application
> developers the choice of their identifier architecture.  They can use
> URI only EPRs and they can use URIs + XML based reference properties and
> parameters.  

I don't think that the comparison is between URIs and EPRs but between
URIs and URI+RefProp's, leaving cookies out of the picture.

The one fundamental piece of the Web is identification with URIs. I
don't think that the above comparison shows enough advantages for
justifying the introduction of a new identification mechanism.



Hugo Haas - W3C
mailto:hugo@w3.org - http://www.w3.org/People/Hugo/

Received on Monday, 15 November 2004 15:43:03 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:04:07 UTC