This is a set of notes aimed at describing how we can update the Apache Tuscany Java SCA runtime to create an Endpoint structure to represent a configure reference or service binding.
Motivating mail thread http://www.mail-archive.com/dev@tuscany.apache.org/msg04531.html





|
EndpointReference |
Endpoint |
|---|---|---|
Location |
Leaftmost component reference |
leaftmost component service |
Multiplicity |
One for each binding on a leaf reference + promoted references |
One for each binding on a service |
Interface |
From the reference |
From the service |
Binding |
If target then from service |
Binding on service |
Intents |
Sum of intents on references at all levels |
Sum of intents on services at all levels |
Policy Sets |
Use attached policy sets |
Use attached policy sets |
Scenario |
CAS1 |
CBS2 |
CCS2 |
CDS3 |
Endpoints at CB |
Endpoints at CD |
|---|---|---|---|---|---|---|
1 Binding |
binding.ws |
|
|
|
Ignored in SCA v1.1? |
Ignored in SCA v1.1? |
2 Binding |
|
binding.ws |
|
|
CD/S3/binding.sca |
|
3 Binding |
|
|
binding.ws |
|
CD/S3/binding.sca |
|
4 Binding |
|
|
|
binding.ws |
CD/S3/binding.sca |
|
The EndpointReference and Endpoint have a number of fields and a status which indicates what they are connected to and how they will be processed. Both structures are externalizable. In the Endpoint case this allows a distributed registry of endpoints to be maintained. In the EndpointReference case this allows ServiceReferences to be serialized between remote components as called for in the SCA specifications.
TBD
Scenario |
CAR1 |
CBR2 |
CCR2 |
CDR3 |
EndpointReferences at CD |
|---|---|---|---|---|---|
5 Binding |
binding.ws uri= |
|
|
|
Ignored in SCA v1.1? |
6 Binding |
|
target=CFS3 |
|
|
CD/R3/target=CFS3 |
7 Binding |
|
|
target=CFS3 |
|
CD/R3/target=CFS3 |
8 Binding |
|
|
|
target=CES3 |
CD/R3/target=CES3 |
Scenario |
CAR1a |
CBR2a |
CCR2a |
CDR3a |
EndpointReferences at CD & CG |
|---|---|---|---|---|---|
9 Binding |
|
|
|
target=CES3 |
CD/R3a/target=CES3 CB/R3b/target=CES3 |
10 Binding |
|
target=CFS3 |
|
target=CES3 |
CD/R3a/target=CES3 CD/R3a/target=CFS3 CB/R3b/target=CFS3 |
11 Binding |
|
target=CFS3 |
|
target=CES3 |
TBD as 10 |
12 Binding |
|
target=CFS3 |
|
target=CES3 |
TBD as 10 |
13 Binding |
|
|
|
target=CES3 |
TBD as 9 |
Event |
Action |
|---|---|
Create/Start Node |
Read Model |
Message through reference |
(if not resolved) EndpointReference resolution |
Service Not Available |
TBD - possible future event |
Add Service |
TBD - Possible future event |
Remove Service |
TBD - Possible future event |
Action |
Description |
|---|---|
Read Model |
read composite file into in-memory model |
Resolve Model |
resolve composite against other artifacts in the composite and domain |
Build model |
create the appropriate relationships between parts of the model bases on SCA validation rules, Inludes:
|
Activate Runtime |
Create the runtime infrastructure. Includes:
|
Start Runtime |
Start all runtime providers |
EndpointReference resolution |
Locate the services that endpoint references refer to |
Build Reference Chains |
use the wire configuration to build the runtime interceptor chains |
State |
EndpointReference |
Endpoint |
|---|---|---|
Wired - service specified but unresolved |
unresolved |
unresolved |
Wired - service resolved - binding not matched |
resolved |
unresolved |
Wired - service resolved - binding matched |
resolved |
resolved |
Unwired |
resolved |
resolved |