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