Comments received from community on 2/25 of DRAFT GENI Control Framework Requirements document

View: New views
1 Messages — Rating Filter:   Alert me  

Comments received from community on 2/25 of DRAFT GENI Control Framework Requirements document

by Harry Mussman :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

GENI Control Framework WG Members and GENI Developers,


An effort is underway to define and document a first view of the GENI
Control Framework Requirements.  

A first DRAFT (v01.3) has been completed, and can be found at
http://groups.geni.net/geni/wiki/GeniControlFrameworkRequirements 

The abstract is:
GENI Control Framework Requirements
GENI-SE-CH-RQ-01.3
This document defines the GENI control framework subsystem, and then
specifies its requirements.  It is a DRAFT, to be used for discussion in the
GENI Facility Control Framework working group.  Once approved, it can be
used as a guide to judge the completeness of prototype control framework
designs, and as a guide to their continued evolution.  


As previously announced, we will do an interactive review via a conference
call:

        Wednesday, Feb 25, 2009
        1pm - (absolutely no later than) 3pm EST.

        Bridge:  866-453-5550   651 3886#

To facilitate this review, a summary of comments received from the community
is attached below.

SORRY - I should have forwarded these to the mailing list as they were
received, or had them directed to the mailing list.


We look forward to a review, and then a lively discussion of the DRAFT
document.

Please feel free to contact me with questions about the document, or the
review.

Thanks,

Harry

Harry E. Mussman
Sr. Systems Engineer - GENI Project Office
BBN Technologies
10 Moulton Street
Cambridge, MA 02138
(617) 873-4282 - Office
(781) 266-8479 - Mobile
(617) 873-4888 - Fax
hmussman@...
www.bbn.com



General comments on purpose and nature of the document:


Received from Jeff Chase on 2/18/09:
My overall impression is that it is a valiant effort to abstract from the
various control frameworks, and the cost of doing that is that it is harder
to understand than it could be if we were willing to be more aggressive
about binding some architectural choices.  Not that there's anything wrong
with that....I understand the purpose of the document.  With that said, I
didn't find anything really offensive to me, but many places where the
intended meaning could be subject to interpretation (Rorschach test) or
might unintentionally allow or exclude certain possibilities.


Received from Ted Faber on 2/24/09:
I have my usual detailed comments on the draft, which we can get into on the
phone or after the conference call, but rather than dive into the minutae
first, I wanted to send my comments on the document as a whole.

There are two major problems with this document, as I see it.  First it's
very tied to a particular implementation both in terms of the thinking
behind it and in the specific expressions of the requirements.
Secondly it doesn't differentiate between functional requirements and
implementation requirements.

The result is a document that gives me a recipe that defines birthday cake
rather than telling me that  a birthday cake is a sweet dessert with candles
on top.  The recipe certainly gets me a birthday cake, but there's a certain
lack of innovation implied.  The analogy is an overstatement for effect, but
this document is more about how to do things than what needs to be done.

The first problem prevents the document from becoming a meeting point where
various control framework designers can agree on the key functional
requirements that any control framework must have because requirements are
expressed in the language of a particular implementation.  For example,
there are several places where a database with specific record contents is
tied to requirements (e.g. Section
5.5.3) and that seem to imply that full contents of that database are
accessible (e.g., Section 5.5.1).  To be clear, the problem is that the
requirements fairly tightly constrain the data a framework might need to
keep in order to carry out this function and that the framework must export
it, not that database software is implied - how not what.

To my mind, in reading this document I frequently had two questions:
"does this requirement need to be there functionally?" and if it does "how
tightly does its implementation need to be constrained?"  In my opinion this
document concentrates on the implementation questions much more than the
functional questions.  In any case, we should recognize that both questions
are important.

The second objection speaks more directly to this issue of the level of
requirements.  Functional requirements help developers find the key
abstractions and operations on which control frameworks have to agree.
This document focuses more on explaining how a particular implementation
would approach the operation - what information it would use and where it
would be stored - rather than specifying the details operationally and
letting the developers build whatever works with their system.

For example, the document specifies principal records and their contents,
but a requirement like "it must be possible to tie principals to a
responsible real world entity and authenticate the principal" comes closer
to the ideas on which many implementations can agree.  Even that phraseology
points to the deeper and more important issues on which control frameworks
may differ: what constitutes a principal in the framework?, and to what
extent is that principal connected to a person or collective (university,
department, research group, ...) in the world outside the GENI control
framework?  Following that chain of questions upward to the concepts that
cannot be deleted from any implementation seems more fruitful than following
the questions down into how they're included in a specific implementation.

I can't see the control frameworks groups designing or coding to the
requirements in this document in order to interoperate.  I think many of the
specific structures in these requirements will be missing from some of the
designs. Furthermore, higher level guidance (what does it mean to identify a
principal) is missing.

I'd much prefer a concerted effort to make this a functional requirements
document.  It's a pretty significant challenge to craft requirements for
only the essential elements and functions of a system.
The urge to generate requirements from an example is very strong; I've
certainly done it.  But a document that does capture what a framework must
do to be useful rather than how one might do it is a real asset to the
control framework developers and the program as a whole.



Specific comments on certain sections:



Received from Aaron Falk on 1/13/09:
I'm revising the System Requirements doc and found this very nice text
written by Ted Faber introducing the concept of a slice.  You might want to
include it in your control framework docs.

> A slice is a collection of resources that have been allocated and
> configured together for the purpose of experimentation.
> It can contain resources from diverse locations and administrative
> controls.  Slices provide GENI's notion of an experimenter's
> collection of resources and are the fundamental entity that
> researchers use to define their experiments.
> Researchers will remotely discover, reserve, configure, program debug,
> operate, manage, and teardown distributed systems established across
> parts of the GENI suite by manipulating slices and the resources
> connected to them.




Received from Justin Cappos on 2/12/09:
5.2.2 b)  It shall be possible to identify a principal who is acting within
the GENI suite.

Who can identify a principal acting within the GENI suite?   Any user
on the internet, any GENI user, the administrators of GENI, the leader of
the federation at which the user joined, etc.

This has strong implications for issue c.

5.2.5    From my conversations with Million node GENI users, opt-in
users will want an interface where they can control how their
resources are used.   I think this is very similar to an organization
who donates resources wanting to enforce a policy (like no porn) so a
similar mechanism should suffice.

5.5.7    I think disconnected operation is very important and must be
supported (as a maintainer of several long term services).

5.8    It would probably be a good idea to make sure operations can't
be skipped or performed out of order except in circumstances where the
user expressly allows it.   For example, suppose that I'm logging
information to a file and I want to archive the file periodically.
That might consist of the steps: move the log file to a backup, signal the
server to close the file descriptor and create a new log file,
compress the backup, and erase the backup log file.   It's clear that
if I skip some step(s) or perform them out of order, the researcher will not
get the result they intend.



Received from Larry Lannom on 2/15/09:
A couple of random comments:

5.2.1 - "A GENI principal is a person acting from a server..." what does
acting from a server mean?

5.4.3 - A slice is registered jointly by a GENI admin and someone from a
research org - so who owns it and what does it mean to own it? I found
myself asking this sort of question a number of times - some sort of
ownership/management diagram might be useful.

5.6.1 d) - similar to above - is control a single thing or do control
privileges vary?

In general - is there one GENI suite or multiple instances of GENI suites? I
understand that the intent is to have multiple interoperable suites, but I
wasn't clear if GENI always meant the organizational entity or the interop
spec.



Received from Jeff Chase on 2/17/09:
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.






Received from Jeff Chase on 2/18/09:
- Can a ticket be many slivers?
- Does the Clearinghouse register every component by name?

(Orca broker may know about interchangeable components within an aggregate
only by type, attributes, and unit count, e.g., for edge
clusters.)

This comes up again in 5.5.1.  Is an aggregate manager mandated to expose
everything, or can it withhold information about its internal structure?

Does the CF make any assumptions about the experiment control tools?  
(e.g., per my question about "slice controller" yesterday).  In general,
where does CF and slice support services begin?  (comes up at several
points, including 5.6.2...see more comments below.)

Fig 2-1.  Is there a distinction between administrator and operator?  
never mind, I see it in 5.2.5.

Fig 2-2.  Is "Research Org A" more than an ID provider?

Fig 2-3.  Notion of GENI services and service manager is new.   Your use
of term "service manager" here is one reason we are shifting terminology
within Orca to refer to former "service manager" as "slice controller".  
(per my message yesterday).  The new emphasis on services takes a big step
toward OGSA.

S4, p 11: is software repository part of the clearinghouse?
p12, is the "broker service" in the next bullet list not part of the
clearinghouse?  There seems to be a shift to create some mechanism for
federating aggregates other than a clearinghouse.  I'm curious why.  (cf
5.5.5)

I'm not sure I understand the two bullets about principals on page 12.

In 5.2.2 the emphasis on identity raises eyebrow.    Shib philosophy is
that any kind of service provider does not really care about identity, but
only security attributes associated with the identity and endorsed
by an identity provider.   Actual real identity is just one possible
attribute but is not necessarily required.  Ultimately GENI may require
bindings to identities in the real world, e.g., for legal sanction, and I
would not oppose that, but to mandate it is a significant step.  It also
raises the question about whether levels of indirection are acceptable,
e.g., if Duke says the operation is being done on behalf of a CS faculty
member, but does not say who, and an abuse is committed, is it sufficient to
allow/require the institution to divulge identity only after the fact, e.g.,
after evidence of the abuse has been presented?  
My personal view is: I don't believe that anonymity is required, but I do
think that requiring strong bindings to identity in advance creates an
implementation burden (essentially requires PKI) and administrative burden,
and may be problematic later, and is probably unnecessary.  
Perhaps 5.2.3 (b) is enough to answer this concern.

In my view, where this is going is Shibboleth (or equivalent) with agreement
within GENI about what security attributes must be associated with
GENI-enabled identities as basis for authorization, and with additional
support within GENI for delegations of authority (probably using SAML) and
richer authorization policies.  If so, then the emphasis on identity may be
drifting off the route, e.g., in 5.2.3-5.2.5 it might be sufficient to
delegate many of these issues to shib.

In 5.3.2, do we mandate a standard for these identifiers?  Orca uses RFC
4122 GUIDs.

In 5.4.1 I do not see a need for a subslice.   Our philosophy is to make
slice creation easy enough (unprivileged) that an experimenter can use
multiple slices if convenient...and in fact we regularly do this in our
research on experiment automation (with Shivnath Babu).  But for this reason
I question the strong requirements for slice registration in
5.4.3 a, c.   [5.4.3 b seems to conflict with c]  This seems to be
derived from PlanetLab, where a slice has to be specifically approved by
humans, instead of just making sure it is created by a user who is
authorized and ultimately accountable.

I don't interpret anything in 5.4.3 as requiring a central point in GENI
with knowledge of all slices.  I hope you not intend to mandate such a
central registry.  [5.4.3 a could be construed as implying it.]

Is 5.5.2 intended to mandate that all components are sliverable?  I think
that would be a mistake.

I'm unclear on the distinction between 5.5.3 e and f.

In 5.5.4, the word "negotiate" could be useful somewhere?

Does 5.5.4 d and f require mutual consent?

In 5.5.6, WSRF is relevant here.  I don't see a problem.  But we like to
allow for notifications about changes to component status, which is one
reason why I think the notion of "slice controller" as first class entity is
important.  Similarly in 5.5.7 "issue", if you have a slice controller and
it is disconnected, then that is OK, but the resources might go away as the
leases expire.  That is why resource contracts must have an end time!  If
you have such an end time, then disconnected is OK.

Terminological point: I think it is wise to be careful about the term
"reserve", which can mean "starts at a specific time in the future" or
"assures me a resource entitlement".   Use is ambiguous in 5.5.7.   This
is one reason I like the term "lease" (plus one syllable).   A lease
could be best-effort or an assured entitlement, and it can be arranged an
advance or can be on-demand.  A "reservation" means different things to
different people, but whatever it means, it is a kind of lease (or at least
a ticket, i.e., a promise to enter into a lease).

I wasn't sure exactly what 5.5.8 and 5.5.9 were really saying.



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