- From: David Orchard <dorchard@bea.com>
- Date: Sun, 16 Jan 2005 14:16:47 -0800
- To: <public-ws-addressing@w3.org>
- Message-ID: <32D5845A745BFB429CBDBADA57CD41AF0CF65C77@ussjex01.amer.bea.com>
Following the (informal) action item we took to discuss issue 1, we (David and Paco) have had some discussion on the topic of identifiers and on use cases for EPRs; we have converged on a few clarifying conclusions. The main point is the fact that the full extent of possible usages of EPRs and Ref. ps. is a larger and richer mechanism than a view that a generic EPRs are to be treated as an identifier. The fundamental semantics of EPRs are defined by the need to pass the Reference portions back in messages sent to the target endpoint. This core semantics support a multitude of use cases. 1. Consider a stateful interaction model where ref. properties are interaction data and the full state of the interaction (in the form of actual business data: a shopping cart, for example); this usage follows the canonical stateless implementation that http cookies allow. In fact, the semantics of ref props in this usage case are not very different from cookie semantics except for the fact that WS-Addressing does not define an EPR lifecycle. The EPR in this situation acts as a mere packaging mechanism for transmitting to the service requester the URI address + state that is characteristic of a particular interaction. In particular, there is only one identifier involved here, the URI providing the network address. The state represented by the ref. props. has no identification function in this case. The EPR is nothing but an XML envelope for the two. To reiterate, the EPR is not an identifier but a container used to specify echoed state information. 2. The use of EPRs and ref props as a server side "identifier" (as opposed to client side identifiers) is another possible and probable use case. Here, the combination of URI and ref. props. is used by the infrastructure to retrieve stateful artifacts associated with the interactions. Typically, in these cases the internal implementation of the server side provides for mechanisms to compare two EPRs for "sameness" and can operate with proper id semantics internally. Reference properties carry server side specific data (not business data as before). In this scenario, the client is not allowed to determine the semantics of different EPRs. It is worthwhile to observe that virtually all the Web Services specifications that use WS-Addressing - such as WS-Eventing, WS-ReliableMessaging, WS-Enumeration, WS-ResourceFramework, etc. - create a container construct (ie WS-ReliableMessaging sequence) and provide a protocol for updating the container. To the point, there is no WS- specification that gives the client latitude to interpret EPRs without also providing a protocol. We believe that this emergent layering pattern proves the power of EPR semantics based on an echoing mechanism alone. We believe that this emergent layering pattern that utility of WS-Addressing EPRs as just an echoing mechanism can be encapsulated by other specifications that formally specify the interpretation of sameness or differentness of EPRs. Of course, many other usage patters of EPRs are possible and we cannot expect that every application or vendor will necessarily support every model. Still, the basic semantics of WS-A should enable interoperability between the parties without requiring higher level agreements on the EPR minting model being used. The key to this is to carefully define the common semantics shared by all these use cases. We think this is essentially the requirement that ref. ps. need to be "echoed" back with messages sent to the server. Some considerations on the opaqueness issue (discussed in a different thread) may be also pertinent here. What seems to clearly fall outside the common minimum core is formal identifier, as well as Web identifier semantics. Dave and Paco
Received on Sunday, 16 January 2005 22:16:50 UTC