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

Reply via email to