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
Motivation
- The OSOA reference binding list was used to represent resolved/configured bindings which meant breaking the model to resolve references
- OASIS have a different approach to matching references/service so factoring out endpoint references/enpoints from references/services will allow a switchable algorithm to be deployed
- New policy model can use endpoint models as policy subjects
- Support late reference resolution
Scenarios
- Static domain - where all composites are present before nodes are started
- as now composites will automatically be configured with unwired bindings
- Incremental deployment - where nodes are started with composites before the domain is complete
- Endpoint logic will ask the domain for information required to resolve endpoint references with endpoints
- Service Location Transparency - a future scenario where nodes can be moved
- Endpoint/binding logic can again be used to ask the domain for new endpoint information
- Could just let each binding handle it but maybe some advantage to having the enpoint reference handle it by stopping/reconfiguring/starting the binding
- Dynamic Domain - in the future but some scenarios call for components to be reconfigured at runtime
- Endpoint reference and endpoint concepts focus the effort of adding removing wires
Overview
Model
Creation and Activation
Event |
Action |
---|---|
Create/Start Node |
Read Model |
Message through reference |
Resolve EndpointReference |
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 |
Resolve EndpointReference |
Locate the services that endpoint references refer to |
Build Reference Chain |
use the wire configuration to build the runtime interceptor chains |