> a) runtimes of various kinds (SCA standalone, embedded within Tomcat, etc)
>
>
We know need to be able to run tuscany applications in different
environments but I want to understand what "runtime" means, how they are
built, how they are shipped and how they are used given the scenarios we
want to support. Thank you ant for putting in the effort to do this. It's
really helping to clarify. Trying to organize my thoughts below based on
this thread.
b) applications, containing only the code and other artifacts required for
> the application itself
+2
To see what this looks like I've started creating some of this in the
> sca/modules/runtime-* projects and associated projects in
> sca/distributions.
Based on what you have said/checked in, are these the scenarios you have in
mind?
Standalone
Start Tuscany from the command line
Drop contribution jars into a directory which are then picked up
automatically and all contained composites are run
War
Start tomcat
Add the tuscany war to tomcat webapps dir
Drop contribution jars into a directory (in the expanded war?) which
are then picked up automatically and all contained composites are run
Webapp
Construct a webapp
Add dependencies (using maven?) for tuscany jars
Configure web.xml to include the Tuscany filters
Build the war
Start tomcat
Add the war to tomcat webapps at which point the war directory is
loaded as a contribution and and composites that are found are started
Tomcat
Tuscany installed in tomcat
Start tomcat
As wars are loaded there are analysed to see if they are
contributions and and composites found are started
I want to work into this the domain angle as when we talk about how a user
might run tuscany we need to understand that. Here I talk about runtime as
the thing that gets nodes up and going in different environments in order to
run sca applications (composites). There is a set of stages that a person
wanting to run SCA applications may be aware of.
A. build sca application jars
result: one or more contribution jar(s)
B. decide which domain(node) they are going to run them on
result: just the knowledge that relates a set of contributions, and the
composites they contain, with how/where they will be run
in the simplest case the result is "I want to run this SCA
application on this standalone runtime"
may result in configuration which describes which composites
will run on which nodes.
C. start runtime (and hence node) - i.e.bring up of tomcat, war, standalone
result: running nodes ready for contributions
D. add contribution
result: a set of contributions is made available from which composites can
be deplyed
E. deploy composite
result: composites are assigned to the node that will run them
F. start composite
result: the composite is run and its services are available
G. stop composite
result: the composite is stopped and it's services are no longer
available. For example, if some maintenance is required on that part of the
application
H. remove composite
result: the node becomes available for other things
I. stop runtime - for example, Ctrl-C the runtime
Am I correct in saying that in the runtime you have described the stages
come as
A
B
C
D, E, F come together when a contribution is dropped into a runtime
G, H , I come together when a runtime is stopped
I have more to say on the more complex scenarios and how these stages might
be implemented differently is different situations but I want to check I'm
understanding what you are saying so far.
Simon