= The GENI API = The GENI API is an effort to enable interoperability between Control Frameworks/Clearinghouses and Aggregates. The GENI API implements a key interface of the [wiki:SliceFedArch SFA 2.0 Draft], providing a common interface to Aggregate Managers. Experimenters can use the API to access resources belonging to any compliant Control Framework. The API lets you mix and match aggregates with control frameworks. [http://www.protogeni.net/trac/protogeni ProtoGENI], [http://www.planet-lab.org/ PlanetLab], and [http://www.openflow.org/ Openflow] all have implemented the API and are now interoperable, as demonstrated at GEC8 (mostly). The ProtoGENI implementation is live in Utah, and is part of emulab-stable. Contact the mailing list (geni-dev@emulab.net) with questions on using it. The !PlanetLab implementation is on trunk. To run it on your MyPLC instance, follow the [wiki:UpgradingSFAToTrunk upgrade instructions] and use the mailing list: devel@planet-lab.org for questions. PLC rollout is expected, but requires some careful coordination. Contact !OpenFlow for availability of the !OpenFlow implementation of this API. The GPO has developed a reference implementation of this API, particularly demonstrating the use of certificates, credentials and credential verification. Also provided is a reference client, [wiki:Omni omni]. [wiki:Omni Omni] communicates with each clearinghouse in its 'native tongue', and then calls the Aggregate Manager API at any compliant Aggregate. These packages are available together for download here: [http://www.gpolab.bbn.com/local-sw/ Download Sample Code]. Experimenters should begin designing and conducting experiments that take advantage of the broad variety of resources now available to them. Contact Mark Berman and the Experimentation Working Group with questions. Full details on the API specification are available here: [wiki:GAPI_AM_API GENI Aggregate Manager API] Questions? Comments? Suggestions? Contact Tom Mitchell (tmitchell) or Josh Karlin (jkarlin) or Aaron Helsinger (ahelsing) at geni.net == Useful Links == * [wiki:GAPI_AM_API GENI Aggregate Manager API Wiki Page] * [wiki:GeniAggregateManagerApiDoc GENI Aggregate Manager API Document] * [wiki:GeniApiIdentifiers GENI Identifiers] * [wiki:GeniApiCertificates GENI Certificates] * [wiki:GeniApiCredentials GENI Credentials] * [wiki:SliceFedArch SFA 2.0 Draft] * [http://www.gpolab.bbn.com/local-sw/ Download Sample Code] * [https://geni-orca.renci.org/trac/ ORCA-BEN] * [wiki:Omni Omni Client] ----- ''This page will be beefed up (significantly, we hope) in the coming weeks.'' To Do: * Add a page about gcf that describes the software and what you can do with it * Add pages about the underpinnings of the API: URNs, certificates, credentials * Add pages about enabling the API in !PlanetLab and ProtoGENI * What else? * [wiki:Omni OMNI Documentation] more details