[[PageOutline]] = Developers Working Sessions = These two separate sessions will be informal working sessions for developers of aggregates, tools, and clearinghouses to meet, discuss open issues, and possibly write code in real time. Specific topics will be determined based on need and available developers, but will likely include stitching, GENI Portal integration, common Clearinghouse APIs, AM API revisions, and Speaks For. These discussions will build off the topics introduced at the [wiki:GEC17Agenda/MiscDevTopics Miscellaneous Developers' Topics] session. Discussions begun here will be continued at the [wiki:GEC17Agenda/CodingSprintTutoring Coding Sprint] session. == Schedule == Monday, 4:00pm - 5:30pm Tuesday, 8:30 - 10:30am == Session Leaders == {{{ #!html
Aaron Helsinger
GPO
Tom Mitchell
GPO
}}} == Agenda / Details == Monday: * '''Speaks-for Credentials in GENI Tools, Services and Aggregates'''. A discussion of 'speaks-for' capability: motivation, essentials, state and future plans. * '''ABAC in GENI Authorization'''. How GENI plans to use ABAC for authorization in federation and aggregate API's. * '''Stitching status and plans'''. The current state of stitching development and what is the underlying functionality demonstrated at the GEC. Tuesday: * '''AMSoil'''. A presentation by Tom Rothe of OFELIA on tools they have built to facilitate working with the AM API. * '''Omni as tool and library'''. The current state of omni, future plans and how omni can be used to support tool operations. * '''Uniform Clearinghouse API's'''. Discussion of proposed common clearinghouse interfaces (so that tools can talk to multiple clearinghouses using the same interfaces). * '''Long-lived Slices'''. Discussion of the use cases and requirements to support long-lived experiments and associated resource allocations [attachment:LongLivedSlices.pptx slides] == Background Reading == * For the Speaks For signing tool demonstrated by Rob Ricci, see https://github.com/duerig/xml-signer == Pre-Requisites == None == Session Summaries == In the Developer Working Sessions, we had in depth discussions on several ongoing GENI aggregate and clearinghouse development topics, particularly Speaks-for, AMSoil, Omni as a library, and long lived slices. On Monday, we spent the entire session discussing the planned implementation of Speaks-for credentials, allowing experimenters to explicitly authorize a tool to act on their behalf, without forcing tools to impersonate experimenters. Rob Ricci demonstrated a [https://github.com/duerig/xml-signer browser based tool] for generating Speaks-for credentials in Javascript. Marshall Brinn asserted that GENI should support an early version of this infrastructure by GEC18. We then had an open discussion on how this tool and infrastructure will work, with questions about aggregates of aggregates and authenticating tools. We ran out of time before hearing from Ted Faber on [http://abac.deterlab.net/ ABAC] or Aaron Helsinger on stitching. Tuesday we began with a review by Sarah Edwards of how tool developers can use [gcfw:Omni Omni] as the engine for developing more powerful, experimenter friendly tools. Omni is used this way for simple scripts like ready-to-login, behind the scenes in the GENI Portal and GENI Desktop, and is the basis of an experimental Awesome Omni (awemni) effort. Sarah also reviewed best practices for embedding Omni in other tools (such as caching credentials), and a wish list of future enhancements to Omni. A highlight of the session was an invited presentation by Tom Rothe representing [http://www.fp7-ofelia.eu/ OFELIA], describing [https://github.com/fp7-ofelia/AMsoil/wiki AMSoil]. AMSoil is the framework Tom built for developing GENI aggregates, which is open source, pluggable, and being used to develop several aggregates among our European collaborators. Niky Riga led a lively discussion of how GENI and GENI aggregates should support 'long lived slices' - slices that remain active for months or years. Niky cited a number of possible use cases, and issues that such slices must address: updating an existing set of resources, aggregate maintenance, unplanned outages, reserving scarce resources, and policy for permitting reservations longer than the aggregate default. Ilya Baldin (ExoGENI) and Rob Ricci (InstaGENI) offered their thoughts and fielded questions on how their aggregates might deal with these concerns. Ilya argued that long lived slices must be robust to outages and downtimes. He suggested that perhaps the AM API should support image migration in the future, allowing slices to migrate processes around planned maintenance. He noted that a current ExoGENI development effort is to improve state recovery over planned maintenance. Update() will be supported in ExoGENI, but not for at least 6 months. Rob noted that their data suggests many GENI experimenters under-utilize their allocated resources; experimenters reserve the resources for 5 days, and actively use them only for a couple hours. He indicated that in the near future the default sliver lifetime at InstaGENI will likely be shortened, and they may start refusing to renew slivers that have been mostly idle. InstaGENI support for Update() will happen after several other nearer term development efforts, so likely not before the next GEC. Rob split slices into three categories: days, weeks, and forever. Most users need resources only for days, and the current process fits that. Experimenters who need resources for weeks could perhaps use a special credential allowing renewing for longer than the default maximum. Rob argued that experiments requiring resources practically 'forever' are few enough that they should be handled manually on a case by case basis. In their experience, there are so few of these that developing a general solution would not be cost effective. We ran out of time before reviewing the planned common clearinghouse APIs, which are intended to be supported at the GENI Clearinghouse, the ProtoGENI clearinghouse, as well as at [http://www.fed4fire.eu/ Fed4Fire] and OFELIA in Europe.