Hi,

Good work. I suggest that we start to go a bit wild to bring up the new story ASAP instead of being stuck with the legacy code. I'm fine if the code gets broken for a week or two.

I have a few comments/questions (I use Endpoint/EndpointReference to refer the Endpoint2/EndpointReference2):

1) The EndpointReference.get/setTargetName() should be removed. If the reference has an @target attribute or the binding has an SCA URI, we create a target Endpoint to represent that.

For example,
<component name="Component1">
   <reference name="Ref1" target="Component2/Service1">
</component>

Assuming the structural uri for Component1 in the SCA domain is TopComponent/Component1, then the target should be relativized as follows:

target                                        structural URI
---------------------------                 
---------------------------------------------------------------------
Component2/Service1                TopComponent/Component2#service(Service1)
Component2                              TopComponent/Component2
Component2/Service1/Binding1 TopComponent/Component2#service-binding(Service1/Binding1)


2) For callback of an SCA reference, I assume:

* We create an Endpoint to represent the "callback service" on the component that owns the reference * Set the callback endpoint to the EndpointReference so that it can be passed to the target component to make callbacks

3) The Endpoint can potentially have the SCA structural binding URI and/or the binding-specific physical URI.

For example,
<component name="Component2">
   <service name="Service1">
<binding.ws name="Binding1" uri="http://localhost:8080/MyWebService"/>
   </service>
</component>

The structural URI for Binding1 is: TopComponent/Component2#service-binding(Service1/Binding1)
The WS binding specific URI is: http://localhost:8080/MyWebService

If the Endpoint2 represents a non-SCA service endpoint, then the structural URI is null.

Do we need to have an attribute in the Endpoint to access the structural URI? Do we need to have an attribute in the Endpoint to access the binding specific URI or do we reuse binding.get/setURI()?

4) If we need to pass around an EndpointReference, what would be the serialized format? The WS-Addressing EPR structure can probably help.

5) Do we consider to have an EndpointRegistry at runtime so that endpoints can be looked up or resolved based on the structural URIs?

Thanks,
Raymond

--------------------------------------------------
From: "Simon Laws" <[email protected]>
Sent: Friday, March 13, 2009 6:31 AM
To: <[email protected]>
Subject: Re: [2.x] [DISCUSS] Endpoints

We can carry on expanding
http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Endpoints. Not much
there yet but am starting to add things.


An update on where I've got to with Endpoints and EndpointReferences.
I've updated http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Endpoints
with a model and some description of the events that cause Endpoint
and EndpointReference models to be created. I've added code to this
effect in parallel with the existing code. I've got to the stage now
where I can't do any more in parallel and need to do some ripping and
replacing.

In particular I have the following TODOs

Use of EndpointReference2 and Endpoint2 in place of the current
EndpointReference
Separate out the Endpoint/EndpointReference creation and resolution
code from the builders so that it's pluggable and can defer to
bindings if required
Fix up callbacks for the new structures
Fix up promotion for the new structure

Any further comments gratefully received.

Regards

Simon

Reply via email to