|
View:
New views
5 Messages
—
Rating Filter:
Alert me
|
|
|
|
|
|
Re: two issues of terminologyThus spake Vicraj Thomas on Thu, Feb 19, 2009 at 11:19:43AM -0600:
> I propose: > - We distinguish between programming tools and experimenter tools > - The distinction is not based on whether the tools run inside a slice > or outside. Rather the distinction is based on whether the tool is used to > program slivers or to manage experiments. (I realize this isn't a precise > distinction---I'll try to come up with something better.) > - Experimenter tools include provisioning tools, experiment control > tools, instrumentation tools, collaboration tools, etc.. I think this definition is basically going in the right direction. Let me take a couple tries at alternate versions. Still vague: An experimenter tool *sets up* the environment in which a system under test runs, a programming tool is (may be?) *part* of that environment. More specific, but maybe not quite right: A programming tool is one that is in the "codepath" (broadly defined) of the system under test - that is, it's directly involved in the experiment because my application calls it as a library, makes syscalls into it, sends packets through it, etc. An experimenter tool is outside this codepath in that the interaction is one way - the experimenter tool might "call into" the SUT to start it, modify its configuration, etc, but the SUT doesn't "call into" the experimenter tool. (And in the case of collaboration tools and similar things, the tool may never really interact with the SUT at all.) -- /----------------------------------------------------------- | Robert P Ricci <ricci@...> | <ricci@...> | Research Associate, University of Utah Flux Group | www.flux.utah.edu | www.emulab.net \----------------------------------------------------------- _______________________________________________ services-wg mailing list services-wg@... http://lists.geni.net/mailman/listinfo/services-wg |
|
|
Re: two issues of terminologyIt seems we all agree that there is a useful distinction between
"programming tools" and "experimenter tools" for a slice. And we're still trying to pin down the exact nature of the distinction. IMHO, we shouldn't work too hard to make the definition precise, because there is no bright line. There may be tools that cross whatever line we draw. This definition seems pretty good: Robert P Ricci wrote: > ... > An experimenter tool *sets up* the environment in which a system under > test runs, a programming tool is (may be?) *part* of that environment. > > More specific, but maybe not quite right: > > A programming tool is one that is in the "codepath" (broadly defined) of > the system under test - that is, it's directly involved in the > experiment because my application calls it as a library, makes syscalls > into it, sends packets through it, etc. An experimenter tool is outside > this codepath in that the interaction is one way - the experimenter tool > might "call into" the SUT to start it, modify its configuration, etc, > but the SUT doesn't "call into" the experimenter tool. (And in the case > of collaboration tools and similar things, the tool may never really > interact with the SUT at all.) > > experimenter tools (e.g., slice controller) about events within the SUT. We can dodge that by saying that the SUT exposes/publishes events and the external controller subscribes to those events, so that the SUT does not have to invoke the controller or know about it. But that just encapsulates the line in a publish/subscribe system somewhere. (Not that there's anything wrong with that.) To me it seems most straightforward to think in terms of where code runs, something like so: - A "programming tool" consists of or produces (creates/generates/combines/links) code to run within some sliver. Different component/sliver technologies might come with their own programming tools or libraries of off-the-shelf programs or modules specific to those kinds of slivers. That's one reason why the distinction seems useful: so we can talk about programming tools for specific kinds of components or slivers. (Of course, the programming tool itself could run anywhere.) - An "experiment tool" is a tool that manages a slice on the experimenter's behalf, but does not run within a sliver or produce code that runs within a sliver. That sort of makes sense...certainly a slice can't pull itself up by its own bootstraps, i.e., the code that initially sets up a slice can't run within any of the slice's slivers. Experiment tools should strive to be general across many component/sliver technologies, although they will have to "talk about" various component/sliver technologies, i.e., they might have to produce and consume various metadata or representations. I emphasize again that it's not a bright line. I could imagine an experiment tool that does some management or control that is specific to a particular kind of sliver and/or comes with an agent that runs within specific sliver types. And we all want long-running slices to be self-monitoring and self-managing, so there could be families of tools for programming some kind of reflection into slices---what are they? One reason to draw the line is to make it more interesting to cross it. Jeff _______________________________________________ services-wg mailing list services-wg@... http://lists.geni.net/mailman/listinfo/services-wg |
|
|
Re: two issues of terminologyI agree there's a distinction in here somewhere, but I think it's
more functional than where code runs. DETER has an experiment control tool that closely matches Jeff's last paragraph - implemented as a distributed agent system (agents generally run in slivers, could also run "under" them) with a front end (runs outside silvers) and some other outside-sliver mechanism. Much of the tool is common to any technology; some of the agents would be technology-specific. Etc. So the brightest line around seems to me to be Vic's "program slivers or to manage experiments" - all else is -awfully- flexible.. --john At 4:42 PM -0500 2/23/09, Jeff Chase wrote: >It seems we all agree that there is a useful distinction between >"programming tools" and "experimenter tools" for a slice. And we're >still trying to pin down the exact nature of the distinction. > >IMHO, we shouldn't work too hard to make the definition precise, because >there is no bright line. There may be tools that cross whatever line we >draw. This definition seems pretty good: > >Robert P Ricci wrote: >> ... >> An experimenter tool *sets up* the environment in which a system under >> test runs, a programming tool is (may be?) *part* of that environment. >> >> More specific, but maybe not quite right: >> >> A programming tool is one that is in the "codepath" (broadly defined) of >> the system under test - that is, it's directly involved in the >> experiment because my application calls it as a library, makes syscalls >> into it, sends packets through it, etc. An experimenter tool is outside >> this codepath in that the interaction is one way - the experimenter tool >> might "call into" the SUT to start it, modify its configuration, etc, >> but the SUT doesn't "call into" the experimenter tool. (And in the case >> of collaboration tools and similar things, the tool may never really >> interact with the SUT at all.) >> >> >But that almost suggests that the System Under Test cannot notify the >experimenter tools (e.g., slice controller) about events within the >SUT. We can dodge that by saying that the SUT exposes/publishes events >and the external controller subscribes to those events, so that the SUT >does not have to invoke the controller or know about it. But that just >encapsulates the line in a publish/subscribe system somewhere. (Not >that there's anything wrong with that.) > >To me it seems most straightforward to think in terms of where code >runs, something like so: > >- A "programming tool" consists of or produces >(creates/generates/combines/links) code to run within some sliver. >Different component/sliver technologies might come with their own >programming tools or libraries of off-the-shelf programs or modules >specific to those kinds of slivers. That's one reason why the >distinction seems useful: so we can talk about programming tools for >specific kinds of components or slivers. (Of course, the programming >tool itself could run anywhere.) > >- An "experiment tool" is a tool that manages a slice on the >experimenter's behalf, but does not run within a sliver or produce code >that runs within a sliver. That sort of makes sense...certainly a >slice can't pull itself up by its own bootstraps, i.e., the code that >initially sets up a slice can't run within any of the slice's slivers. >Experiment tools should strive to be general across many >component/sliver technologies, although they will have to "talk about" >various component/sliver technologies, i.e., they might have to produce >and consume various metadata or representations. > >I emphasize again that it's not a bright line. I could imagine an >experiment tool that does some management or control that is specific to >a particular kind of sliver and/or comes with an agent that runs within >specific sliver types. And we all want long-running slices to be >self-monitoring and self-managing, so there could be families of tools >for programming some kind of reflection into slices---what are they? >One reason to draw the line is to make it more interesting to cross it. > >Jeff > > >_______________________________________________ >services-wg mailing list >services-wg@... >http://lists.geni.net/mailman/listinfo/services-wg _______________________________________________ services-wg mailing list services-wg@... http://lists.geni.net/mailman/listinfo/services-wg |
|
|
Re: two issues of terminologyYeah, I agree with John on this one, where it runs isn't the right place
to make the distinction. As an example, Emulab offers a lot of tools that are clearly experimenter tools - they install software, help launch processes, distribute events, etc. We have a portal that lets you create slices on PlanetLab using Emulab, and one of the things that comes along is all these experimenter tools. They do exactly what you describe below, and bootstrap themselves inside of the slice. They get installed by 'pushing' them in from outside the slice, and much of the control infrastructure resides outside, in Emulab, but the tools themselves pretty clearly run inside the slice. Thus spake Jeff Chase on Mon, Feb 23, 2009 at 04:42:42PM -0500: > But that almost suggests that the System Under Test cannot notify the > experimenter tools (e.g., slice controller) about events within the > SUT. Yeah, this is definitely a weakness with this definition, but maybe it points out the place (roughly) where something crosses from a pure experimenter tool and starts blurring into a programming tool. > - An "experiment tool" is a tool that manages a slice on the > experimenter's behalf, but does not run within a sliver or produce code > that runs within a sliver. That sort of makes sense...certainly a > slice can't pull itself up by its own bootstraps, i.e., the code that > initially sets up a slice can't run within any of the slice's slivers. > Experiment tools should strive to be general across many > component/sliver technologies, although they will have to "talk about" > various component/sliver technologies, i.e., they might have to produce > and consume various metadata or representations. -- /----------------------------------------------------------- | Robert P Ricci <ricci@...> | <ricci@...> | Research Associate, University of Utah Flux Group | www.flux.utah.edu | www.emulab.net \----------------------------------------------------------- _______________________________________________ services-wg mailing list services-wg@... http://lists.geni.net/mailman/listinfo/services-wg |
| Free embeddable forum powered by Nabble | Forum Help |