Dan Diephouse wrote:
On 3/16/07, Polar Humenn <[EMAIL PROTECTED]> wrote:

I'm trying to follow this discussion, but I need more info on what a
"destination" is.


A Destination is something that receives messages. Kind of similar to an
endpoint ;-) It also has a back channel with which to send responses back
(could be asynchronous or sync)

I'll post a summary of my proposal shortly which people can review, as this
discussion is getting a bit convoluted.

However, I'm in agreement with Dan on the Client-Conduit issue.

I am now just *barely* able to hold onto making a trust decision about
information that goes out over the wire from the application. At least,
with the 1 to 1 relationship between the Client and the Condult, there
is some hope that the code operating the client can say it wants its
requests to go over a particular conduit it trusts.

Completely getting rid of that correlation would ruin that ability.


Well, we still need to be able to override the address we're talking to at
runtime via the JAX-WS properties. That should probably result in a new
conduit ala ConduitInitiator.getConduit(EndpointInfo, EPR) instead of
handling the address change inside the Conduit I would think. But I think
you don't like that from a security standpoint if I'm reading correctly.

My question to you is this: you're very concerned about somehow getting a
new conduit which isn't configured with the proper security. But a user can select a new conduit at any time via the API. Setting the endpoint address is pretty much equivalent to doing this. Is there really anything we can do at all in that scenario other than hope that users don't use a conduit they
haven't configured?


The goal is assurance and trust. Assurance in the fact that what I command, actually happens, and trust in the destination (endpoint) of information.

The components we have are Client and Conduit.

Apparently, the Client is associated with one conduit to which information flows. If this is the abstraction we can get at that API level, we must lay our assurance in those components, such that if the application selects a client and lays certain requirements (security properties) on that client and conduit we are assured that the system will comply with our requirements.

I don't mind the "address" switching within the conduit, provided we make the security requirements (trust decision) know that can happen.

My formost concern is the Client-Conduit relationship. If the Conduit were allowed to be switched out from underneath the Client, the Client should get notified of this before it is actually used, so that the client, or some object governing the security of the Client has a chance to review, trust, and assure.

Although I haven't investigated it so thoroughly the issue of Destinations, EndpointReferenceTypes (EPRs), and back channels, it seems that an architectural decision to associate one particular Conduit with a Client is the less complicated approach.

The "assurance" questions are, what *assurances* and/or constraints does the Conduit bring to the table as far as the Client is concerned? Endpoint Address stability? Protocol Stability Connection Stability? Trusted Path Stability (proxies?). And equally as important, how to these assurances and constraints transcend upwards to the Client and to the application code using the Client.

Cheers,
-Polar


- Dan


Reply via email to