| Tuscany Wiki > Home > Endpoints |
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 If none then from the implementation |
From the service If none then from the implementation |
| Binding | If target then from service Else from reference |
Binding on service If none then binding from promoted service If none then binding.sca |
| Intents | Sum of intents on references at all levels | Sum of intents on services at all levels |
| Policy Sets | Use attached policy sets If none then use policy sets attached to impl reference |
Use attached policy sets If none then use policy sets attached to impl service |
| 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 Resolve model Build model Activate Runtime Start Runtime |
| Message through reference | (if not resolved) EndpointReference resolution Build Reference Chains |
| 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 |