| Tuscany Wiki > Home > Domain |

Need to define what the different parts do and if they are all required
SCA Domain/Node Diagrams (PDF) (OpenOffice odg File)
Composite Application Deployment with SCA Domain
Players:
Domain:
1) Deployment: Manage SCA contributions, composites and node configurations.
This is the deployment manager that helps SCA assemblers/deployers to
partition the domain composite into smaller composite applications that can
be deployed a specific runtime unit. For example, the administrator can
starts with a deployable composite. The domain manager can then find the
required contributions based on the import/export. The composite application
can then be allocated a node. It ends up with a configuration for a node.
A node can have a fixed configuration to a given composite application. Or
the domain can assign a composite application to the node dynamically based
on the capability of the node (such as implementation/binding/policy types).
In a node-centric view, node configurations can be manually crafted
(programmatically or via node.xml) or locally discovered (from the
classpath).
In a domain-centric view, node configurations are received from the domain
(by connecting to the domain deployment manager or taking a pre-built xml
document).
2) Runtime: Share service descriptions so that we can perform SCA
domain-level wiring. This can be done in "online" mode or "offline" mode.
Online mode: There is a live service registry (centralized or distributed)
that keeps up-to-date information of the domain-level service descriptions.
Offline mode: The domain-level service descriptions are pre-built (or even
pre-resolved) and a SNAPSHOT of that is used. For example, some XML
documents (such as a deployment composite with all the SCA endpoints)
resolved are used to store the domain metadata.
| Case | Options |
|---|---|
| a1 | A single contribution |
| a2 | Multiple dependent contributions |
where each contribution can be directories, jar, zip, bundle, war, ear...
| b1 | one or more composite files but which are not listed in META-INF/sca-contribution.xml |
|
| b2 | one or more composite files but which are listed in META-INF/sca-contribution.xml |
|
| b3 | one or more composite files but which are present in META-INF/sca-deployables (is this still supported?) |
| c1 | node(s) with contributions passed in on command line, programmatically, in node.xml or discovered from classpath |
|
| c2 | node(s) with contributions pulled from domain manager (configuration is a URL) |
|
| c3 | node(s) in a webapp | |
| c4 | node(s) as eclipse project(s) |
|
| c5 | node(s) integrated into Tomcat and Geronimo plugin |
|
| c6 | node(s) as OSGi service listeners? (is that the right term?) |
|
| c7 | node(s) in cloud (what does this mean) |
One or more nodes may run in a single VM
| 1 node configured from command line, programmatically, in node.xml (c1) 1 or more contributions are described in a node configuration node is started with node configuration services are immediately accessible |
||
| 1 node configured from command line, programmatically, in node.xml (c1) each node has separate node configuration detailing domain name and contributions each node is started with node configuration nodes exploit distributed registry to locate remote service endpoints in same domain during wire resolution |
||
| 1 node packaged with webapp (c3) webapp is configured with a filter to run webapp contents as SCA application webapp deployed to unchanged container |
||
| tomcat instance as a domain (c5) Webapp (jars/zips) equate to contributions tomcat extenstion runs contributions in nodes in single JVM nodes form domain using local version of registry in single JVM |
||
| eclipse workspace as domain (c4) click on composite and start node nodes communicate using local registry (simplification of domain manager approach that is in 1.x) |
||
As a review exercise can we correct/complete this list by getting all
of the scenarios people have in their heads out on the table. I
believe we have all imagined different scenarios.
This is a TODO for this review. This is a mildly enhanced version of
what we already have or have discussed at various times.
| Entities | Operations | Descriptions |
|---|---|---|
| Node |
Create with configuration Create with URL of configuration start stop |
|
| Endpoint Registry (should this be domain registry now) |
Add/remove/query endpoints Add/remove/query domain policy (new) |
|
| Domain Manager |
Add/Remove contribution Add/remove node Deploy/undeploy composite and associate with node Start/Stop node (do we need to maintain this in the domain manager?) Query (some work has been done on this but I've not tried it) (the domain manage is really made up of a number of service interfaces including these here and the endpoint registry) |