To get the distributed domain support up to a level that is suitable for
including in the next release I think we need to make the node configuration
and management more dynamic.

Scenarios
--------------
The current scenario being used to test distributed support is the
calculator-distributed sample where the CalculatorComponent runs in nodeA
and the AddComponent and SubtractComponent run on NodeB and NodeC
respectively. This is a simple stand alone application and I think we should
continue with it.

There has also been conversation on the list about how the distributed
domain can help when working in a web app environment. What are the salient
points here we need to consider?

SCA Binding
------------------
Currently the code uses JMS to implement the default remote SCA binding. The
remote SCA binding is used when the system finds that two components that
are wired together locally are deployed to separate Nodes. As an alternative
it would be good to support web services here also and have this fit in with
the new SCA binding mechanism that Simon Nash has been working on.

To make a web services SCA binding work we need an EndpointLookup interface
so that components out there in the distributed domain can locate other
components that they are wired to.

Node Management
---------------------------
Currently each node runs in isolation and starts a local SCA domain
configured from  .topology and .composite files. It would be good to define
NodeMaganement interfaces so that this information can be provided remotely
and so that the node can expose remotely accessible management interfaces,
for example.
  Join a domain
  Start/Stop domains and components in domains
  Retrieve domain topology and topology changes relevant to the node
  Retrieve default domain URIs for this node
  Record any events that occur in the domain (could be offered as a feed)

The domain management interface Ant has recently been added that may help us
shape this. Also Sebastien's work to allow local domains to be modified more
dynamically should help make this work.

Distributed Domain Management
-----------------------------------------------
The notion of a distributed domain running across a series of nodes gives
us  the opportunity to provide some centralized control, for example
  Accept configuration changes
  Notify interested nodes/domains that configuration changes are available
  Record the endpoints of services offered by each Node/Domain
  Collect together events that occur in nodes (again could be offered as a
feed)

For both NodeManagment and DistributedDomainManagement, SCA itself seems to
provide a good foundation for implementing the various management services
that are required. This is how the implementation to date implements its
component registry. Defining such components allows us to provide different
implementations, for example, we could retain the file based management we
have now for batch operation and create network based management components
for dynamic runtime environments.

Anyhow, if anyone has any thoughts about what is required or wants to get
involved in moving this forward then you are most welcome

Simon

Reply via email to