Re: Domains, runtimes, components and cardinality

2007-06-22 Thread Simon Laws

More comments in line

On 6/20/07, scabooz <[EMAIL PROTECTED]> wrote:


Hi,

I have a few comments embedded below.

Dave

- Original Message -
From: "Raymond Feng" <[EMAIL PROTECTED]>
To: 
Sent: Monday, June 18, 2007 9:55 PM
Subject: Re: Domains, runtimes, components and cardinality


> Hi,
>
> Please see my comments inline below.
>
> Thanks,
> Raymond
>
> - Original Message -
> From: "Simon Laws" <[EMAIL PROTECTED]>
> To: "tuscany-dev" 
> Sent: Monday, June 18, 2007 5:25 AM
> Subject: Domains, runtimes, components and cardinality
>
>
>> Following on from recent discussion on the distributed binding (I've
been
>> putting notes here [1])... In a Tuscany SCA runtime what do we expect
the
>> cardinality between the various parts of it to be?
>>
>> A domain notionally runs on a runtime. In the case of a stand-alone
>> Tuscany
>> SCA runtime this will be a single process (C++ exe, Java VM etc.). In
the
>> case of a distributed Tuscany SCA runtime, the runtime is made up of
many
>> distributed nodes that each run parts of the domain.
>>
>> 1/ Can domains share runtimes/nodes?
>>
>> I.e can components from more than one domain be running inside a single
>> Tuscany SCA runtime or is the user expected to start up multiple
runtimes
>> to
>> run multiple domains.
>
> I think a single Tuscany SCA runtime can only join one SCA domain. For a
> single machine (node), we can have multiple runtimes. These runtimes
will
> have to share the resources, for example, using different ports for the
> http protocol. I'm not sure if we need to have the node
> concept between the SCA domain and runtime.
>
The definition of runtime is still not clear to me.  It should be possible
to for
a single operating system process (like a JVM) host components running
in different domains.  Is this scenario 1 runtime which supports multiple
domains, or is a runtime the process local instantiation of a domain?



In my mind  (and using, I believe, Mike Edwards'  terminology)  the atomic
building block is the node.

1 node = 1 operating system process.

The term runtime has been mentioned as meaning the collection of nodes that,
together, are used by a distributed domain. To me this implies that there is
a relationship between the nodes, i,e, they are managed as one runtime,
brought up and down together etc. I doesn't imply to me that they can only
host one domain. It does imply that a domain is restricted to runinng on the
nodes in a runtime. I.e.

Runtime1
 NodeA
 NodeB
Runtime1
 NodeC
 NodeD

A domain can't run on NodeA and NodeC but it could run on NodeA and NodeB

IMO, hosting components from multiple domains involves creating multiple
domain (representatoin, containers, objects, not sure what the term is) in
the runtime node, for example, the main components of the node would be

NodeA
 Node Management Features
 DomainA
 DomainB
NodeB
 Node Management Features
 DomainA
 DomainB

The degenerate case is of course where there is only one domain represented
in a node.

I have to admit that in the code so far I have only allowed for one domain
in a node but this is not a physical restriction just a product of how I
implemented it to date (I was more worried about the lower level plumbing at
the time).

So generally the model I have in my mind is:

domain n  1 runtime 1  n node
nn
|-|

The degenerate case being

domain 1  1 runtime 1  n node
1n
|-|

Which, with input from this thread,  is what I'm starting with. No
implication that this will be a restriction just that we have to start
somewhere :-)




>> 2/ How many nodes can a single component run on?.
>>
>> I.e. is the assignment of a component to multiple nodes, for
performance,
>> reliability etc. reasons, explicitly supported as part of the topology
>> description of a distributed domain. If so then the  SCA binding
chooses
>> which node to use. If not then any distribution of workload is
considered
>> to
>> be a job for the node implementation.
>
> We might have different cases here:
> 1) For load-balancing, we can assign a component to multiple runtimes
> 2) For a singleton service, we may have to assign it to a single runtime
> (a backup runtime can be picked for HA).
>
Even further, consider recursive composition.  Suppose CompA is
implemented by Composite Cz, which is an assembly of atomic components.
CompA's composite is deployedthe atomic components in Cz are
targetted to different hosting environments (I'm avoiding the use of the
word
runtime) because there isn

Re: Domains, runtimes, components and cardinality

2007-06-21 Thread scabooz

Hi,

I have a few comments embedded below.

Dave

- Original Message - 
From: "Raymond Feng" <[EMAIL PROTECTED]>

To: 
Sent: Monday, June 18, 2007 9:55 PM
Subject: Re: Domains, runtimes, components and cardinality



Hi,

Please see my comments inline below.

Thanks,
Raymond

- Original Message - 
From: "Simon Laws" <[EMAIL PROTECTED]>

To: "tuscany-dev" 
Sent: Monday, June 18, 2007 5:25 AM
Subject: Domains, runtimes, components and cardinality



Following on from recent discussion on the distributed binding (I've been
putting notes here [1])... In a Tuscany SCA runtime what do we expect the
cardinality between the various parts of it to be?

A domain notionally runs on a runtime. In the case of a stand-alone 
Tuscany

SCA runtime this will be a single process (C++ exe, Java VM etc.). In the
case of a distributed Tuscany SCA runtime, the runtime is made up of many
distributed nodes that each run parts of the domain.

1/ Can domains share runtimes/nodes?

I.e can components from more than one domain be running inside a single
Tuscany SCA runtime or is the user expected to start up multiple runtimes 
to

run multiple domains.


I think a single Tuscany SCA runtime can only join one SCA domain. For a 
single machine (node), we can have multiple runtimes. These runtimes will 
have to share the resources, for example, using different ports for the 
http protocol. I'm not sure if we need to have the node

concept between the SCA domain and runtime.

The definition of runtime is still not clear to me.  It should be possible 
to for

a single operating system process (like a JVM) host components running
in different domains.  Is this scenario 1 runtime which supports multiple
domains, or is a runtime the process local instantiation of a domain?



2/ How many nodes can a single component run on?.

I.e. is the assignment of a component to multiple nodes, for performance,
reliability etc. reasons, explicitly supported as part of the topology
description of a distributed domain. If so then the  SCA binding chooses
which node to use. If not then any distribution of workload is considered 
to

be a job for the node implementation.


We might have different cases here:
1) For load-balancing, we can assign a component to multiple runtimes
2) For a singleton service, we may have to assign it to a single runtime 
(a backup runtime can be picked for HA).



Even further, consider recursive composition.  Suppose CompA is
implemented by Composite Cz, which is an assembly of atomic components.
CompA's composite is deployedthe atomic components in Cz are
targetted to different hosting environments (I'm avoiding the use of the 
word
runtime) because there isn't a single host that is capable of running all of 
them.

How many runtimes does CompA a run in?

Start simple, just don't want you to lose the big picture.



I'd be interested to hear peoples views on this

My starting point is...

1/ No, we will support multiple domains by starting multiple runtimes. We
could add the extra function to support sharing of runtimes between 
domains

in the future if it's found to be required.

2/ We shouldn't restrict whatever structure we use to describe the
component/node association to be 1-1. But we can assume 1 in the first
instance and consider adding more complex node selection features to the 
SCA

binding in the future.

Regards

Simon

[1] http://cwiki.apache.org/confluence/pages/editpage.action?pageId=59826




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Domains, runtimes, components and cardinality

2007-06-20 Thread Simon Laws

On 6/19/07, Venkata Krishnan <[EMAIL PROTECTED]> wrote:


Hi,

I guess it should be a good start to have SCA domains span across runtimes
and leave the runtimes being shared by SCA domains to the next iteration.

As for the second point, is there a possibility of seeing this as
replication of components across two runtimes instead of nodes?  Anyways,
to
start with, I'd be happy to leave this out for the next iteration.

Thanks

- Venkat


On 6/18/07, Simon Laws <[EMAIL PROTECTED]> wrote:
>
> Following on from recent discussion on the distributed binding (I've
been
> putting notes here [1])... In a Tuscany SCA runtime what do we expect
the
> cardinality between the various parts of it to be?
>
> A domain notionally runs on a runtime. In the case of a stand-alone
> Tuscany
> SCA runtime this will be a single process (C++ exe, Java VM etc.). In
the
> case of a distributed Tuscany SCA runtime, the runtime is made up of
many
> distributed nodes that each run parts of the domain.
>
> 1/ Can domains share runtimes/nodes?
>
> I.e can components from more than one domain be running inside a single
> Tuscany SCA runtime or is the user expected to start up multiple
runtimes
> to
> run multiple domains.
>
> 2/ How many nodes can a single component run on?.
>
> I.e. is the assignment of a component to multiple nodes, for
performance,
> reliability etc. reasons, explicitly supported as part of the topology
> description of a distributed domain. If so then the  SCA binding chooses
> which node to use. If not then any distribution of workload is
considered
> to
> be a job for the node implementation.
>
> I'd be interested to hear peoples views on this
>
> My starting point is...
>
> 1/ No, we will support multiple domains by starting multiple runtimes.
We
> could add the extra function to support sharing of runtimes between
> domains
> in the future if it's found to be required.
>
> 2/ We shouldn't restrict whatever structure we use to describe the
> component/node association to be 1-1. But we can assume 1 in the first
> instance and consider adding more complex node selection features to the
> SCA
> binding in the future.
>
> Regards
>
> Simon
>
> [1]
http://cwiki.apache.org/confluence/pages/editpage.action?pageId=59826
>


OK,  thanks for your comments. It seems like we agree. In the first instance
then I've checked in my code with the assumption that

a component only runs on one node
a node only supports one domain

Having said that I've built some topology model classes that allow for this
simple case but don't restrict us to this. I'm not using these model classes
yet (in the sample the component to node mapping is hard coded) but the next
job is to plumb it in.

I'm just about to post a quick summary of what I've checked in.

Simon


Re: Domains, runtimes, components and cardinality

2007-06-18 Thread Venkata Krishnan

Hi,

I guess it should be a good start to have SCA domains span across runtimes
and leave the runtimes being shared by SCA domains to the next iteration.

As for the second point, is there a possibility of seeing this as
replication of components across two runtimes instead of nodes?  Anyways, to
start with, I'd be happy to leave this out for the next iteration.

Thanks

- Venkat


On 6/18/07, Simon Laws <[EMAIL PROTECTED]> wrote:


Following on from recent discussion on the distributed binding (I've been
putting notes here [1])... In a Tuscany SCA runtime what do we expect the
cardinality between the various parts of it to be?

A domain notionally runs on a runtime. In the case of a stand-alone
Tuscany
SCA runtime this will be a single process (C++ exe, Java VM etc.). In the
case of a distributed Tuscany SCA runtime, the runtime is made up of many
distributed nodes that each run parts of the domain.

1/ Can domains share runtimes/nodes?

I.e can components from more than one domain be running inside a single
Tuscany SCA runtime or is the user expected to start up multiple runtimes
to
run multiple domains.

2/ How many nodes can a single component run on?.

I.e. is the assignment of a component to multiple nodes, for performance,
reliability etc. reasons, explicitly supported as part of the topology
description of a distributed domain. If so then the  SCA binding chooses
which node to use. If not then any distribution of workload is considered
to
be a job for the node implementation.

I'd be interested to hear peoples views on this

My starting point is...

1/ No, we will support multiple domains by starting multiple runtimes. We
could add the extra function to support sharing of runtimes between
domains
in the future if it's found to be required.

2/ We shouldn't restrict whatever structure we use to describe the
component/node association to be 1-1. But we can assume 1 in the first
instance and consider adding more complex node selection features to the
SCA
binding in the future.

Regards

Simon

[1] http://cwiki.apache.org/confluence/pages/editpage.action?pageId=59826



Re: Domains, runtimes, components and cardinality

2007-06-18 Thread Raymond Feng

Hi,

Please see my comments inline below.

Thanks,
Raymond

- Original Message - 
From: "Simon Laws" <[EMAIL PROTECTED]>

To: "tuscany-dev" 
Sent: Monday, June 18, 2007 5:25 AM
Subject: Domains, runtimes, components and cardinality



Following on from recent discussion on the distributed binding (I've been
putting notes here [1])... In a Tuscany SCA runtime what do we expect the
cardinality between the various parts of it to be?

A domain notionally runs on a runtime. In the case of a stand-alone 
Tuscany

SCA runtime this will be a single process (C++ exe, Java VM etc.). In the
case of a distributed Tuscany SCA runtime, the runtime is made up of many
distributed nodes that each run parts of the domain.

1/ Can domains share runtimes/nodes?

I.e can components from more than one domain be running inside a single
Tuscany SCA runtime or is the user expected to start up multiple runtimes 
to

run multiple domains.


I think a single Tuscany SCA runtime can only join one SCA domain. For a 
single machine (node), we can have multiple runtimes. These runtimes will 
have to share the resources, for example, using different ports for the http 
protocol. I'm not sure if we need to have the node

concept between the SCA domain and runtime.



2/ How many nodes can a single component run on?.

I.e. is the assignment of a component to multiple nodes, for performance,
reliability etc. reasons, explicitly supported as part of the topology
description of a distributed domain. If so then the  SCA binding chooses
which node to use. If not then any distribution of workload is considered 
to

be a job for the node implementation.


We might have different cases here:
1) For load-balancing, we can assign a component to multiple runtimes
2) For a singleton service, we may have to assign it to a single runtime (a 
backup runtime can be picked for HA).




I'd be interested to hear peoples views on this

My starting point is...

1/ No, we will support multiple domains by starting multiple runtimes. We
could add the extra function to support sharing of runtimes between 
domains

in the future if it's found to be required.

2/ We shouldn't restrict whatever structure we use to describe the
component/node association to be 1-1. But we can assume 1 in the first
instance and consider adding more complex node selection features to the 
SCA

binding in the future.

Regards

Simon

[1] http://cwiki.apache.org/confluence/pages/editpage.action?pageId=59826




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Domains, runtimes, components and cardinality

2007-06-18 Thread Simon Laws

Following on from recent discussion on the distributed binding (I've been
putting notes here [1])... In a Tuscany SCA runtime what do we expect the
cardinality between the various parts of it to be?

A domain notionally runs on a runtime. In the case of a stand-alone Tuscany
SCA runtime this will be a single process (C++ exe, Java VM etc.). In the
case of a distributed Tuscany SCA runtime, the runtime is made up of many
distributed nodes that each run parts of the domain.

1/ Can domains share runtimes/nodes?

I.e can components from more than one domain be running inside a single
Tuscany SCA runtime or is the user expected to start up multiple runtimes to
run multiple domains.

2/ How many nodes can a single component run on?.

I.e. is the assignment of a component to multiple nodes, for performance,
reliability etc. reasons, explicitly supported as part of the topology
description of a distributed domain. If so then the  SCA binding chooses
which node to use. If not then any distribution of workload is considered to
be a job for the node implementation.

I'd be interested to hear peoples views on this

My starting point is...

1/ No, we will support multiple domains by starting multiple runtimes. We
could add the extra function to support sharing of runtimes between domains
in the future if it's found to be required.

2/ We shouldn't restrict whatever structure we use to describe the
component/node association to be 1-1. But we can assume 1 in the first
instance and consider adding more complex node selection features to the SCA
binding in the future.

Regards

Simon

[1] http://cwiki.apache.org/confluence/pages/editpage.action?pageId=59826