« Return to Thread: Re: two issues of terminology

Re: two issues of terminology

by Vicraj Thomas :: Rate this Message:

Reply to Author | View in Thread

Jeff,

I understand the distinction you are making.  There are tools and frameworks
an experimenter may use to program slivers of components.  These include
programming language compilers/interpreters, FPGA programming tools,
frameworks such as SILO and x-kernel, and even debuggers.  These are your
"programming tools".

Then there are tools that an experimenter uses to deploy, control, monitor
and instrument experiments and even tools to collaborate with other
experimenters.  These are your "experimenter's tools" or "experiment control
tools".

I agree it is useful to distinguish the two types of tools.  I think of
"programming tools" as being very specific to the technology used to
implement the component being slivered and to the technology being
investigated by the experiment.  These tools may or may not run within a
slice.

"Experimenter tools" on the other hand are mostly independent of the
technology of the components (or slivers) used by the experiment.  They
operate at the level of a slice or sliver and don't particularly care about
how the sliver was programmed.  I say "mostly independent" since some tools
such as provisioning tools will likely need to know if they are installing
software in a machine with an OS or loading FPGA configuration files.
However the level of abstraction seen by all experimenters is roughly the
same and is independent of the technology used to implement the components
or the technology being studied.  These tools may run inside a slice or
outside or both.

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..
    - The focus of GENI be on experimenter tools.  There are, in addition,
operations and management tools of course but that's the OMIS WG's problem.
:-)

The Experiment Lifecycle document focuses on "Experimenter Tools".  The
document says a resource's Rspec may have pointers to tools and techniques
for programming the resource (i.e. Programming Tools).  The Resource
Discovery experimenter tool that is used to find resources suitable for an
experiment may read this Rspec and point the experimenter to relevant
programming tools.

Comments?

< Vic



On Feb 18 11:30 AM, "Jeff Chase" <chase@...> wrote:

> Vic, thanks, I'm nodding my head at the rough-cut taxonomy in your
> e-mail.  But I think it illustrates exactly the distinction I was trying
> to make, and the need for that distinction.  In particular, you said:
>
> Vicraj Thomas wrote:
>>     - Provisioning tools.  These are the first category of tool you mention
>> in your email and is used to program components: Load software into
>> components and configure them.  Raven is an example of such a tool for the
>> PlanetLab control framework.
>>  
> But no!  Raven loads code into a sliver, but it is not a tool(kit) to
> create that code.   So it is distinct from the first category of tool
> that I mentioned in my e-mail.  SILO, Click, x-kernel, etc., are
> toolkits for creating programs that will run inside slivers/slices.  For
> example, they might include libraries of off-the-shelf operators and so
> on that are useful in programming certain kinds of components (e.g.,
> routers or edge stack implementations), and various ways of combining
> those operators and coordinating them to create a program.  Then Raven
> (or whatever) loads the program into the sliver.
>
> If we consider that distinction, then all of the categories in your
> taxonomy are tools that run outside of a slice.   Raven runs outside of
> a slice.  And my view is that "experiment control tools" or
> "experimenter tools", e.g., as we use the term in the CF docs, should
> include all the things in your list but exclude the distinct category of
> programming tools, the first category in my e-mail.  It is a useful
> distinction.
>
> [There are some interesting examples that cross the boundary of course
> (e.g., for feedback-driven slice adaptation), which comes back to the
> second point about "slice controller".  In general, any of these tools
> that run "outside" a slice might have some minimal hooks "inside" the
> slice.   Analogy: "VMware tools" if you have ever worked with VMware.]
>
> Also, I note that GUSH has elements of your first two categories:
> resource discovery, and provisioning.  At least it acts as the client
> side for those services.   My point is that the distinction between
> "experimenter tools" and "experiment control tools" (as a subcategory)
> seems less useful to me.
>
> Jeff
>>     - Experiment control tools: These are the second category of tools you
>> mention in your email.  GUSH is an example of such a tool.
>>
>> I include other tools under "Experimenter Tools" such as:
>>     - Debugging tools
>>     - Collaboration tools for use by researchers based in different
>> locations
>>     - Search tools to find resources
>>
>> < Vic
>>
>>
>>
>> On Feb 17 12:41 PM, "Jeff Chase" <chase@...> wrote:
>>
>>  
>>> Folks,
>>>
>>> Two quick questions/proposals on terminology.  These might be comments
>>> for the CF requirements doc.  But they have also come up in drafting
>>> spiral 2 proposals.
>>>
>>> Both deal with what has been called "experimenter tools" or "experiment
>>> control tools" in various GENI docs.
>>>
>>> (1) There is a useful distinction between code that runs inside a slice
>>> vs. code that runs outside a slice.   Code that runs inside a slice
>>> falls under the category of "component programming" and the
>>> programmability requirement (S 5.5.5 in the CF requirements doc).   The
>>> question is: do we have an accepted name for toolkits or other
>>> off-the-shelf software artifacts whose purpose is to support
>>> easy/flexible programming of various components?   An example from the
>>> literature might be Click or Ilia's SILO framework.    The specific
>>> question that drove this concerns whether it is right to refer to SILO
>>> as "experimenter tools".  I would argue that we should not consider
>>> these as "experimenter tools" so as not to blur this useful distinction.
>>>
>>> (2) I think we have reached some kind of consensus (within services-wg
>>> and I think in my discussions with GPO folks) for a first-class
>>> entity/actor that controls and monitors a slice.  I think Gush is
>>> perhaps the best-known example.  The defining element that makes such an
>>> entity "first-class" is that it is persistent so that other actors in
>>> the control framework, or slivers in its slice, can send unsolicited
>>> messages/notifications to it.   And it may respond by taking autonomous
>>> actions to control the slice on behalf of an experimenter.  Previously
>>> we haven't had a name for this entity.  I propose that it be called
>>> "slice controller".   (Note: in Orca-world we presume/require/support
>>> such a beast: we have called it "service manager" since the SHARP days
>>> in 2003, and then started talking about "guest controller" plugin to the
>>> SM that implements a control policy.)  The specific question that drove
>>> this is whether we will be understood by GPO if we say "slice
>>> controller".  I think David Irwin had told me he though Harry's
>>> preferred term was "experiment controller", but I'm not seeing any
>>> "controller" term now in the CF req doc.
>>>
>>> Jeff
>>>
>>>
>>>
>>>
>>>
>>>    
>>
>>  
>



_______________________________________________
services-wg mailing list
services-wg@...
http://lists.geni.net/mailman/listinfo/services-wg

 « Return to Thread: Re: two issues of terminology