In addition to the domain centric vs node centric view, there are
potentially two different level of functions that are provided by the SCA
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.
Thanks,
Raymond
--------------------------------------------------
From: "Simon Laws" <[email protected]>
Sent: Thursday, May 28, 2009 3:39 AM
To: <[email protected]>; <[email protected]>
Subject: Re: Discovery-based SCA Domain for OSGi RFC 119
[[snip]]
A) domain centric
Start domain
Add contributions to domain
Start node given domain URL/Node ID
Node pulls contribution from domain
Node resolves unresolved endpoint references via the domain (using
some iface TBD) - this is not in our code today
B) Node centric - this is not in our code today
Start domain (could be part of the nodes or the container the nodes
run in and hence started automaitcally)
Start a node given domain URL/Node ID
Add a contribution to the node
Node registers itself with the domain (using some iface TBD)
Node registers information from deployed composites with the domain
(using some iface TBD)
Node resolves unresolved endpoint references via the domain (using
some iface TBD)
I'd like to be able to do both of these so that, as well as what we
can do today, I can just fire up nodes with contributions and have
them be part of the domain, i.e no need to manually configure domain.
Above is just a first step that makes management more node centric and
allows for incremental construction of a domain via late reference
resolution. It doesn't say anything about a really dynamic domain,
e.g. where wires can come and go. So lets be clear about what we mean
when we are talking about dynamic behaviour and extend this list
accordingly.
Simon