Re: Domains, runtimes, components and cardinality
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
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
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
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
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
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