wiki:GeniRspec

Version 8 (modified by Aaron Helsinger, 8 years ago) (diff)

--

Resource Specification (RSpec)

In order to truly allow interoperability among multiple control frameworks and aggregates, GENI requires a common language for describing resources, resource requests, and reservations - a single, well defined RSpec schema.

This topic was the focus of one of the software engineering sessions at GEC10: GEC10 Meeting

GEC RSpecs Engineering Meeting

At GEC10 there was a community discussion of how to talk in a common language about resources. For example, without a common way to describe what resources an aggregate provides, it is much harder for experimenters to reason about which resources to use.

Ilia Baldine of RENCI and the Orca control framework proposed a 'workable path forward'. Martin Swany, Jeroen van der Ham, Rob Ricci, Rob Sherwood, Max Ott, Jeff Chase, Andy Bavier, Aaron Falk and others all contributed to a lively debate. Thanks to everyone who has been participating. In the end we agreed to negotiate a common understanding of key concepts, and then use translators to support a single format on the wire as a path forward for GENI.

Community Agreement

The session concluded with community agreement on three points:

  • The community will work to agree on common semantics
    • Ilia has proposals for layer 2 network resources and compute resources, and has recruited community members for other areas; thanks in advance to Max Ott, Hongwei Zhang, Martin Swany, Mike Zink, and Rob Sherwood. These individuals, and others who volunteer to help, will produce ontologies to represent the agreements.
  • GENI will use ProtoGENI RSpec V2 as the format on the wire
    • New concepts will be represented as PG RSpec extensions, allowing free addition and evolution of new concepts as needed.
  • Aggregates can use Translators to convert between formats
    • Ilia is building one between PG and Orca formats.

Next Steps

For all of these, community involvement is key. Email dev@geni.net or Aaron Helsinger (ahelsing at geni.net) to get involved. Results will be published to dev@geni.net and to the GENI wiki to keep everyone informed of progress.

Agree on Concepts

  • Align edge compute resource concepts, starting with Ilia's proposal.
  • 4 key semantic extensions
    • Wireless (Max Ott, Hongwei Zhang)
    • Measurement (Martin Swany)
    • Storage - physical & cloud (Mike Zink)
    • OpenFlow flowspace (Rob Sherwood)
  • Produce ontologies for possible ratification at GEC11
    • The same groups will produce and present these agreements

Adopt Schemas

  • Once the semantics of these things are agreed to, Jon Duerig, Ilia and the GPO will assist in representing these as PG extensions
  • Revisit PG schemas
    • Change more attributes to be elements as needed
    • Make some types less opaque as needed
    • Ensure base is extensible for the known needed extensions
    • Jon Duerig of ProtoGENI will handle this
  • Once adopted, RSpec schemas will be maintained by the community, along with the AM API.
  • Modify the AM API specification to require that RSpecs are in the PG RSpec V2 format
    • Aaron Helsinger and the GPO will handle this, when the support infrastructure is in place

Implement Translators

  • Write and deploy translators as necessary (coordinate with Ilia for a start - ibaldin at renci.org)
  • Enable conversion as a GENI-wide service
    • Replicating Ilia's converter as necessary
  • Test full PG/Orca interoperability by GEC11
  • Build a thin PL/PG translation layer at PL (Andy Bavier, Tony Mack, Jon Duerig)
  • Other translators as necessary