- From: Steve Graham <sggraham@us.ibm.com>
- Date: Tue, 14 Dec 2004 15:54:25 -0500
- To: "David Orchard" <dorchard@bea.com>
- Cc: "Srinivas, Davanum M" <Davanum.Srinivas@ca.com>, "David Booth" <dbooth@w3.org>, public-ws-addressing@w3.org
- Message-ID: <OF20436FB0.15CBEC95-ON85256F6A.00701364-85256F6A.0072D6C4@us.ibm.com>
Hi Dave:
"David Orchard" <dorchard@bea.com> wrote on 12/14/2004 02:50:45 PM:
> Steve,
>
> I want to fully understand this scenario, so please let me know where I
have not
> accurately reflected understand of your scenario.
Thanks for taking the time to comment on my posting.
>
> AIUI, you want to use ResourceID in the same sense that WSDL had been
talking about
> the "targetResource", that is an identifier for something behind the
interface that
> is equivalent across interfaces.
As I understand it, AIUI stands for As I Understand It? Am I close? AIUI
is a new one
for me. :-)
I believe that is the intention. The targetResource discussion was
happening just as
I was dropping out of the WSD WG, so I am not 100% sure. But I vaguely
recall that
the intent suggested by WSDM MUWS is the same as what targetResource was
intended for.
>
> The reason you want ResourceId is so that your company software can
determine which
> resource to do the interface operations on, roughly it's the object
identifier.
Right, it is the resource identifier. The relationship between Resource,
Resource Identifier
Web service and Reference are described in [1].
>
> The reason you want XML for resourceIds is so that you can have XML
processing
> software do the determination.
Right, I have the need to expose the resources with Web services, taking
advantage of all
the nice goodies that Web services provides, platform neutrality, etc.,
leveraging the
near-universal data serialization provided by the near-ubiquity of XML.
>
> To a certain extent, the resourceId is an implicit argument to all the
operations
> in your organization. It adds a second object identifier to each
operation.
A "second" object identifier? To me it is THE resource identifier. I
don't know
which other resource identifier you were referring to. I would also avoid
the term
object, since that usually raises alarms etc.
> Instead of object.operation(arguments), you roughly want address.
> operation(resourceId, arguments).
Well with the approach using the wsa:ReferenceProperties to convey the
identifier
the effect is more like resource.operation(arguments), avoiding the
necessity of
having the resourceId in the message body, thereby keeping the means of
resource identification
opaque to the resource provider (ie not explicitly part of the contract
between the requestor
and the provider).
>
> In your context, the resource that is being identified has nothing to do
with the
> "address" field in the EPR, it is up to your implementation of RefPs.
Well, the resource identified is independent of the address of the EPR,
there is a
relation in that the Web service identified by that address can actually
meaningfully
cope with the refProperty (ie know its type) and meaningfully use the
value of the
refProperty to appropriately dispatch the message in the context of the
identified resource.
> In this
> case, a single ResourceId refP is the identifier. But nobody outside
the scope of
> your organization knows that.
Right, no one outside my organization need understand the meaning of the
identifier
type or the meaning of its value set. This is not part of the contract
between
requestor and provider, it is opaque to the provider.
>
> To try to do this in a "URI-centric" manner - I specifically do not use
RESTful
> because I'm not talking about a constrained verb set - you would need to
make the
> ResourceId available that supports a single identifier and then the
various
> operations. Ie, resourceid.operation. The reason why this isn't that
great from
> your perspective is 2-fold: 1) to offer multiple protocol support to the
same
> resource (which isn't mentioned by your note);
Right I didn't want to get into a lot of details in my posting, but
multiprotocol
access is a benefit.
I am also struggling with how I would handle this at all in a URI centric
model.
I know how this would look in cases where the refProp was a simple type.
But in
many cases, the resourceID might be a complex type I am not sure how this
would
map to URI.
> 2) to offer multiple interfaces to
> the same resource with separate address spaces (your rationale). In
particular,
> having 2 separate address spaces enables you to manage and deploy your
services in
> a clean manner. Comparing the 2 scenarios where a service is deployed,
then
> another service is added with a separate ACL.
Right separate Web service endpoints acting on the same underlying
resource may
have different policies. They may have different resourceIDs as well, but
if my
provider environment can limit this to a single resourceID, then I can do
better
resourceID correlation of messages etc. Again, this correlation is
isolated to my
environment, it is not something the requestor could do.
>
> RefP-centric
> Service A with interface A(notification) deployed, ResId SGG deployed at
runtime to
> differentiate. Security is done based upon the service, ie notification
has a particular acl
> Service B with interface B(mgmt) deployed, same resId. Security is
different for B than A.
Right different policies for each endpoint.
>
> URI-centric
> Service A with interface A(notification) is deployed, ResId embedded in
Uri.
> Security is based upon subset of URI + operation.
I would imagine different security considerations for Subscribe on
different
underlying resources, yes. And for a given resource different security
considerations
between subscribe, and other messages.
> Service A is augmented with with interface B, ResId also embedded in
URI. Security
> ACL is augmented with interface B operations.
Not sure what you mean here. By augmented, do you mean some sort of
dynamic
change to the set of operations available at that Web service endpoint?
>
> The key difference from a security perspective is that the RefP centric
solution
> allows security to be on all operations at a given address, whereas
URI-centric
> requires the interface/operation to be included in any ACL. From a
software
> perspective, it is easier to deploy notification software at
A/notification and
> mgmt software at A/mgmt than to deploy 2 different interfaces at A.
I don't disagree.
>
> The above scenario is much more complicated by the multi-protocol
scenario, where
> there may be many different Address+RefP sets that are to the same
Resource.
Yes, in the case of multiprotocol, it does add an additional
multiplicative factor
in complexity.
>
> It is extremely important to observe that the Reference Properties are
NOT compared
> by clients for determining equivalence, this is only for the context of
your
> organization.
In general, identifiers cannot be compared for equality without some
additional
information such as context. It is inequality that is the hard bit to
determine.
> There is no scenario in your case where a client would do something
> different if it had the same RefProperty. There is no "If
(refp1==refp2) then {do
> stuff;} else {do other stuff;}" scenario at the client.
Correct, refProperties are opaque to the client and should not be reasoned
about by
the client. The best the client can hope for is a service provided by the
issuer
of the EPR that would compare two EPRs, ie IsSameResource(EPR1, EPR2)
returns boolean.
> To say again, there is no
> context on the client in which it would do a compare (epr1, epr2).
Correct, the client unilaterally cannot compare EPRs, it needs a service
provided
by the issuer of both EPRs to do the compare.
>
> Further, it is up to other protocols to specify what a client should do
with RefPs
> that are different. For example, some hypothetical
WS-MultiProtocol-Callback spec
> that offered a variety of EPRs for ReplyTos that were equivalent yet
different
> protocols, would have to specify what a receiver would do with the
different EPRs
> and the equivalence rules.
>
[1]
http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-Resource-1.2-draft-02.pdf
> Dave
>
>
>
>
> From: public-ws-addressing-request@w3.org
[mailto:public-ws-addressing-request@w3.org]
> On Behalf Of Steve Graham
> Sent: Tuesday, December 14, 2004 10:59 AM
> To: Srinivas, Davanum M
> Cc: David Booth; public-ws-addressing@w3.org;
public-ws-addressing-request@w3.org
> Subject: RE: Issue i0001 - Clarification of "identifier"
>
>
> I believe it is true that for any "identifier" its usefulness to
determine
> "sameness" or difference between two resource instances must be done in
some
> context. For example, all the resources in my company (ie behind my
company's
> firewall) may use the same value set for <muws-xs-1:ResourceId/> of the
resources
> exposed. Therefore the interpretation of <muws-xs-1:ResourceId/> used
in EPRs
> referencing my company's resources must be done in the context of my
companies
> services. Note, however, that the resourceID is not specific to a
particular
> address. Consider, for example, I have one resource, identified by
<muws-xs-1:
> ResourceId>sggRes1</muws-xs-1:ResourceId>. Consider also that I have
two Web
> services that can act upon that type of resource. WS1 provides base
manageability
> characteristics (such as state property retrieval), and one Web service
provides
> notification capabilities. These two Web services may be deployed at
different
> endpoint addresses (value of wsa:Address in EPR is different), but each
EPR may
> have the exact same value for <muws-xs-1:ResourceId/>. In this case,
the
> ResourceID is not specific to an address, but rather it is specific to
another
> context, that being "my organization".
>
> Does this help?
>
> sgg
> ++++++++
> Steve Graham
> (919)254-0615 (T/L 444)
> STSM, On Demand Architecture
> Member, IBM Academy of Technology
> <Soli Deo Gloria/>
> ++++++++
>
>
> "Srinivas, Davanum M" <Davanum.Srinivas@ca.com>
> 12/14/2004 01:04 PM
>
> To
>
> Steve Graham/Raleigh/IBM@IBMUS
>
> cc
>
> "David Booth" <dbooth@w3.org>, <public-ws-addressing@w3.org>,
<public-ws-
> addressing-request@w3.org>
>
> Subject
>
> RE: Issue i0001 - Clarification of "identifier"
>
>
>
>
>
>
>
>
>
>
> ResourceId is specific to an "Address". right? don't u need both to be
able to
> converse with the resource?
>
> thanks,
> -- dims
>
> From: Steve Graham [mailto:sggraham@us.ibm.com]
> Sent: Tuesday, December 14, 2004 1:00 PM
> To: Srinivas, Davanum M
> Cc: David Booth; public-ws-addressing@w3.org;
public-ws-addressing-request@w3.org
> Subject: RE: Issue i0001 - Clarification of "identifier"
>
>
> Isn't this the case that the <muws-xs-1:ResourceId/> is the identifier
and the EPR
> is still simply a reference? That is the EPR is not an identifier, but
rather it
> contains an identifier?
>
> sgg
>
> ++++++++
> Steve Graham
> (919)254-0615 (T/L 444)
> STSM, On Demand Architecture
> Member, IBM Academy of Technology
> <Soli Deo Gloria/>
> ++++++++
>
> "Srinivas, Davanum M" <Davanum.Srinivas@ca.com>
> Sent by: public-ws-addressing-request@w3.org
> 12/14/2004 12:54 PM
>
>
>
> To
>
> "David Booth" <dbooth@w3.org>, <public-ws-addressing@w3.org>
>
> cc
>
>
>
> Subject
>
> RE: Issue i0001 - Clarification of "identifier"
>
>
>
>
>
>
>
>
>
>
>
>
> For those who want to make "EPRs be usable as "identifiers" in the
> other, mathematical sense of the word", they can add the muws
> ResourceId[1] (<muws-xs-1:ResourceId/>) as a Reference Property[2].
>
> [1]
> http://www.oasis-open.org/committees/download.php/10267/wd-wsdm-muws-par
> t1-1.0-20041127.doc
> [2]
> http://devresource.hp.com/blogs/vambenepe/2004/12/01/1101930898000.html
>
> -----Original Message-----
> From: public-ws-addressing-request@w3.org
> [mailto:public-ws-addressing-request@w3.org] On Behalf Of David Booth
> Sent: Monday, December 13, 2004 12:15 AM
> To: public-ws-addressing@w3.org
> Subject: Issue i0001 - Clarification of "identifier"
>
>
> Unfortunately, the word "identifier" has more than one meaning.
>
> I believe Paco and Jeff are correct that there is a mathematical sense
> of the word "identifier" in which identifiers are required to be unique,
> i.e., if two identifiers are different, then they cannot refer to the
> same thing. (I cannot easily locate a citation for this sense of the
> word, but I seem to remember this being discussed on the www-tag list at
> w3.org a couple of years ago.)
>
> I (and I think most members of the WS Addressing WG, judging by the
> minutes of last week's meeting) have been using the word "identifier" in
> the Web Architecture or programming language sense of the word, in which
> two different identifiers can indeed refer to the same value, thing or
> Web resource.
>
> RFC 2396 defines the word "identifier" as:
> [[
> Identifier
> An identifier is an object that can act as a reference to
> something that has identity. In the case of URI, the object is
> a sequence of characters with a restricted syntax.
> ]]
>
> Issue #1 is about the use of URI+RefProps in the RFC 2396 / WebArch /
> programming language sense of the word: something that can act as a
> reference to a Web resource. In this context, the words "address" or
> "reference" would be just as good. (Then again, we may discover
> ambiguities with those terms also!)
>
> If anyone is interested in having EPRs be usable as "identifiers" in the
> other, mathematical sense of the word (such that different "identifiers"
> MUST reference different resources), then that should be raised as a
> separate issue.
>
>
> --
>
> David Booth
> W3C Fellow / Hewlett-Packard
>
>
>
>
Received on Tuesday, 14 December 2004 20:55:02 UTC