Hi,

Thank you for your interest in Tuscany. I have two quick comments inline.

Raymond


From: Rich Smith (rjsmith2) 
Sent: Monday, August 04, 2008 7:57 AM
To: [email protected] 
Subject: Question on dynamic configuration of distributed application


Resending this question now that I am able to get on the mailing list.  
Apologies to
anyone who gets it twice.

Hi, all.  I'm working on evaluation of Tuscany Java, and need some advice on a
particular configuration/use-case that we are planning for our application.

The application will be scalable from a low-end deployment where it runs on a
single server to a high-end, distributed deployment, running on several servers.
SCA and Tuscany seem like a good fit for this.

In the high-end case, there will be several instances of "back-end servers", 
each
of which will run different instances of the same components.  The front-end 
will
keep a mapping of which back-end server to use for which resources, and so this
is _not_ going to require any kind of load balancing.

So far, I've figured out that I can register the back-end server components 
using
separate service names, and just get those service references using the 
appropriate
names.

<rfeng>In a SCA domain, the components in top-level composites should have 
unique names. But we can configure more than one components to use the same 
implementation. Would it help for your use case?</rfeng> 

However, I want to configure the back-ends using our application and not using
static files (as in the calculator-distributed sample) because it will be 
necessary
to allow customers to add back-end servers as they need to increase capacity.

The thought of having to regenerate all of the .composite files does not appeal 
to
me, and I don't really want to generate five copies of the same file with 
different
service names.

What is the best approach for this?  Is there something I can do using SPI to
dynamically configure a distributed Tuscany Java application?  (It's probably 
okay
if restart is required somewhere, but it would be even better if not.)

<rfeng>SCA does have the deployment composite concept. It allows we use a 
dynamically configured composite (instead of being packaged in a SCA 
contribution) to deploy the application. In Tuscany, we have the following API:

org.apache.tuscany.sca.node.SCANode2Factory.createSCANode(String, String, 
SCAContribution...)

The 2nd argument is a String representing the XML for the deployment composite.

We also have a SCA Domain Manager in Tuscany which provides the administration 
capability.  It's built as a SCA composite application with Web 2.0 front end. 
The function can be used programmatically to introspect 
contributions/composites, resolve wirings and configure nodes for deployment. 
You might be able to explore it for your purpose. 

Please try the store tuturial to get a better understanding: 
https://svn.apache.org/repos/asf/tuscany/java/sca/tutorials/store/domain

</rfeng>

Please let me know.

     --Rich

Reply via email to